固定线程池中的线程阻塞

时间:2011-11-18 10:43:00

标签: java multithreading threadpool

我有两个疑问:

  1. 关于Java中的固定线程池。假设我创建了一个包含5个线程且所有线程当前正在执行的固定线程池,并且还假设队列中有4个任务等待完成这些线程的执行。如果所有当前正在执行的任务被阻止将会发生什么是否有办法从该队列中获取任务并将阻塞的任务放入队列?

  2. 我们如何知道任务是被阻止还是正在执行?

1 个答案:

答案 0 :(得分:3)

  

如果所有当前正在执行的任务被阻止将会发生什么?是否有办法从该队列中获取任务并将阻塞的任务放入队列?

不,没有这方面的便利。如果任务开始执行并被阻止,那么将阻塞该线程直到它正常完成,或者被线程池关闭中断。

  

我们如何知道任务是被阻止还是正在执行?

如果您需要了解这一点,那么您需要将一些知识放入任务代码本身,然后可以通过应用程序的其他部分查询。显然,在将任务提交给执行者之前,还需要保留对任务的引用以允许它工作。