固定线程池中的线程阻塞

nan*_*itv 6 java multithreading threadpool

我有两个疑问:

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

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

ska*_*man 5

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

不,没有这方面的设施。如果任务开始执行并被阻止,则将阻止该线程,直到其正常完成,或者因线程池关闭而中断。

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

如果您需要知道这一点,那么您需要将一些知识放入任务代码本身中,然后可以由应用程序的其他部分查询。显然,在将任务提交给执行者之前,其他东西需要保留对任务的引用才能使其工作。