2011-11-18 55 views
4

我有两个疑惑:螺纹固定阻塞线程池

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

  2. 我们将如何知道任务是否被阻塞或正在执行?

回答

1

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

不,这里没有设施。如果一个任务开始执行并被阻塞,那么将阻塞该线程直到它正常完成,或者被线程池关闭中断。

我们将如何知道任务是否被阻塞或正在执行?

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