【问题标题】:thread blocking in fixed threadpool固定线程池中的线程阻塞
【发布时间】:2011-11-18 10:42:59
【问题描述】:

我有两个疑问:

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

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

【问题讨论】:

    标签: java multithreading threadpool


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 1970-01-01
      • 2016-09-26
      • 2015-06-25
      • 1970-01-01
      • 2019-04-06
      • 2018-06-09
      • 2018-02-16
      • 1970-01-01
      相关资源
      最近更新 更多