日期:2014-05-20  浏览次数:20626 次

如何使多个timer在同时执行时不进行并发执行而是进入某个队列进行执行
如题所示

------解决方案--------------------
挺奇怪的需求,两个招数:
1、把你要执行的那个函数加synchronized,这样JVM就会让他们排队执行了;
2、建立一个大小为1的线程池,然后timer把任务丢该线程池,线程池就会排队了。
------解决方案--------------------
不知道你的timer里调用了什么东西,所以1L说的第一个方法用synchronized未必能解决问题,因为可能锁的不是同一个对象
可以用1L说的方法2,也可以自己做一个队列,timer到时的时候就往队列添加任务(队列可以同步),然后做一个或多个线程专门处理队列的任务