【发布时间】:2011-05-29 23:17:53
【问题描述】:
我想利用一些轻量级的任务管理(例如 ScheduledThreadPoolExecutor)来定期执行一些可能会阻塞的任务(例如,因为等待获取监视器/锁定)。 在这种情况下,任务管理应该检测到这种情况并应该产生另一个相同类型的任务/线程阻塞。
如何做到这一点?
还有一个额外的问题: ScheduledThreadPoolExecuter 的文档指出“如果任务的任何执行遇到异常,则后续执行将被禁止”。就我而言,我宁愿重新启动失败的任务。有没有办法改变这种行为?
【问题讨论】:
-
如果你有一个阻塞任务,那么通过产生另一个也会阻塞的任务来实现什么。当一个任务阻塞时唯一明智的做法是允许另一个非阻塞任务执行。
标签: java multithreading scheduled-tasks task blocking