【发布时间】:2018-12-27 09:10:13
【问题描述】:
在我们当前的服务架构中,我们有一个调度线程池,用于执行一些计算任务(用于实时数据收集)。这些任务是有时间限制的,所以如果它们没有在设定的时间内完成,它们会被调度取消任务打断,这些取消任务与原始任务一起提交。我们看到的问题是取消并不总是准时,并且某些任务可能需要比预期更长的时间才能取消。
据我说,这可能是因为我们使用了一个公共线程池,有时取消任务没有按时完成。但我不确定这一点。有没有办法确认这一点,或者找到取消延迟的实际原因?
【问题讨论】:
-
IIUC,你可以使用调度器来取消任务,但是你需要自己在任务中通过定期检查
isCancelled来实现实际的取消。 -
是的,这完全取决于您的任务对中断的反应
标签: java multithreading threadpool java-threads