有没有办法使用ExecutorService来暂停/恢复特定线程?Java ExecutorService暂停/恢复特定线程
private static ExecutorService threadpool = Executors.newFixedThreadPool(5);
想象一下,我想停止线程至极作为id = 0(假定每个之一被分配一个增量ID直到线程池的大小达到)。
经过一段时间后,通过按下一个按钮,比方说,我想恢复该特定的线程,并将所有其他线程保留为当前状态,可暂停或恢复。
我在Java文档中发现了一个未完成版本的PausableThreadPoolExecutor。但它不适合我需要,因为它恢复了池中的所有线程。
如果没有办法通过ExecutorService的默认实现来完成它,任何人都可以指向我的Java实现来解决这个问题吗?
谢谢!
你确定吗?给定id的线程执行一些随机选择的工作,所以你正在停止一些未知的工作。这是什么意思? – 2012-08-11 15:46:04
想象一下下面的情况:你有一个下载管理器,在那个管理器上你可以停止并恢复下载。对于每一个你正在下载的东西,无关紧要,你想停止下载,无论你想要恢复。这是否使问题更清楚? – 2012-08-11 16:10:21
更清晰,但意义不大。停止/恢复下载是关于业务逻辑的,而线程池则关于计算资源。通过添加/删除资源来控制逻辑是一个好主意恕我直言。 – 2012-08-11 20:00:19