2017年5月9日

tomcat启动报错:java.lang.NoClassDefFoundError

摘要: tomcat启动加载spring配置文件时报错,找不到类GetHelloRequest,经排查实际上该类已经存在。后来发现日志里还有一句: This is very likely to create a memory leak,怀疑内存不足,看了下环境,起了不少tomcat进程,杀掉几个再重启tom 阅读全文

posted @ 2017-05-09 11:36 不想下火车的人 阅读(17730) 评论(0) 推荐(0)

2017年5月7日

使用java.util.Timer实现定时任务产生的异常

摘要: 定时任务用Timer实现有可能出现异常,因为它是基于绝对时间而不是相对时间进行调度的。当环境的系统时间被修改后,原来的定时任务可能就不跑了。另外需要捕获并处理定时任务抛出的异常。如果在TimerTask里抛出了异常,那么Timer认为定时任务被取消并终止执行线程。举例: package com.wl 阅读全文

posted @ 2017-05-07 23:41 不想下火车的人 阅读(3519) 评论(0) 推荐(0)

信号量Semaphore使用实例

摘要: 信号量就是一个停车场,车位数量的固定的,入场先要取卡获得准入证,出去交钱还证。车位满了后面的车就得排队,等里面有车离场才能进来。可以作为资源池来应用,也可以实现流控。如果停车场很小,只有一个车位进出,那么它就是一个互斥锁。下面举例看下它的应用场景: 1、有界列表: package com.wlf.c 阅读全文

posted @ 2017-05-07 23:31 不想下火车的人 阅读(658) 评论(0) 推荐(0)

2017年5月6日

异步计算

摘要: 异步计算通过异步获取计算结果,也可以实现类似闭锁CountDownLatch、栅栏CyclicBarrier的功能。它使用Callable来代表一个任务,提交到Executor框架后,可以异步的通过Future来获取任务执行结果。可以通过CompletionService来提交一组任务到一个阻塞队列 阅读全文

posted @ 2017-05-06 21:39 不想下火车的人 阅读(465) 评论(0) 推荐(0)

栅栏CyclicBarrier

摘要: 栅栏作用类似闭锁,不同点在于闭锁是一次性用品,栅栏可重复使用。另外闭锁的await方法是用来阻塞的,栅栏的await方法则类似闭锁的countDown方法,是用来做减法的,当栅栏初始化的个数减为零后,栅栏便执行它在初始化时指定的Runnable.run方法。 下面举例说明,使用线程池来调度多线程: 阅读全文

posted @ 2017-05-06 13:57 不想下火车的人 阅读(256) 评论(0) 推荐(0)

2017年5月2日

闭锁CountDownLatch

摘要: 顾名思义,闭锁就是用锁来把线程锁起来(调用CountDownLatch对象await方法)。为啥要锁起来呢?可以把锁的钥匙交给另外一个线程,由它来打开(调用CountDownLatch对象的countDown方法)。就好比一座大坝,线程到了大坝就只能蓄起来。一旦闭锁打开所有线程将汹涌倾泻,大坝被冲垮 阅读全文

posted @ 2017-05-02 23:27 不想下火车的人 阅读(253) 评论(0) 推荐(0)

2017年4月27日

捕获其他线程的异常UncaughtExceptionHandler

摘要: 在A线程里起了另B线程,但B线程报错了,这时想要在A线程里捕获B线程的异常是无法做的,除非在捕获B线程前先设置线程捕获器。直接来看代码: package com.wulf.exceptionHandler; import java.lang.Thread.UncaughtExceptionHandl 阅读全文

posted @ 2017-04-27 11:04 不想下火车的人 阅读(523) 评论(0) 推荐(0)

2017年4月26日

spring mvc处理http请求报错:java.lang.IllegalStateException: getInputStream() has already been called for this request

摘要: 发送post请求到controller处理失败,报错日志如下: java.lang.IllegalStateException: getInputStream() has already been called for this request at org.apache.catalina.conn 阅读全文

posted @ 2017-04-26 19:09 不想下火车的人 阅读(15498) 评论(1) 推荐(0)

tomcat软连接的使用

摘要: 软连接说白了就是一个映射。可以映射文件,也可以映射目录。linux和windows都可以做软连接,加入现在把文件A.txt做软连接到B.txt: linux命令如下: windows命令如下: 建立软连接的目的是隔离tomcat里目录或文件,主要是隔离webapps里的项目或者静态资源文件,以实现部 阅读全文

posted @ 2017-04-26 18:05 不想下火车的人 阅读(8771) 评论(0) 推荐(0)

2017年4月23日

对象的克隆,Dozer的使用

摘要: 现在有个复杂对象bean需要在赋值后在另一个地方用,想通过复制的方式拿到这个对象。首选是深度克隆,虽然发现该对象的父类已经实现了Cloneable接口,但父类是通过jar包引入的,而且在clone方法中对该bean一个map<String, Object>属性的处理有问题:获取到map的value时 阅读全文

posted @ 2017-04-23 23:09 不想下火车的人 阅读(3135) 评论(0) 推荐(0)

导航