Tim*_*ime 6 java scheduled-tasks
文档ScheduledThreadPoolExecutor说 - 按照先进先出(FIFO)提交顺序启用任务计划完全相同的执行时间.
这是否意味着应该同时完成的任务永远不会同时完成.相反,它们是按FIFO顺序执行的?
如果这是真的,那么我使用哪个类比哪个类更好Timer,也没有这个FIFO问题?
ScheduledThreadPoolExecutor 的工作方式是有一个“调度”或主线程来检查要执行的任务。
如果它找到一个任务,它会将它委派给池中的一个“工作”线程。
如果多个任务准备好执行,它们一次被“启动”一个,但一旦“启动”,后续处理是并发的,根据 Java 的定义。
如果您有两个同时通过执行程序安排的任务,则它们完成的顺序可能因运行而异,除非您放入特定的控件(例如锁定、等待等)来处理此问题,这取决于 java 的线程调度(java 如何为内核上的线程分配时间)来确定如何以及何时处理什么。请注意,设置此类锁、等待等......是一项看似复杂的任务,容易出现竞争条件,导致意外死锁、活锁等......
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |