当前位置: 代码迷 >> J2SE >> 怎么使多个timer在同时执行时不进行并发执行而是进入某个队列进行执行
  详细解决方案

怎么使多个timer在同时执行时不进行并发执行而是进入某个队列进行执行

热度:74   发布时间:2016-04-24 00:59:35.0
如何使多个timer在同时执行时不进行并发执行而是进入某个队列进行执行
如题所示

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