2011-11-18 47 views
4

我有兩個疑惑:螺紋固定阻塞線程池

  1. 關於Java中的固定線程池。假設我使用5個線程創建了一個固定的線程池,並且所有線程當前正在執行,並且還假設隊列中有4個任務正在等待來完成這些線程的執行。如果所有正在執行的任務都被阻塞,會發生什麼?是否有辦法從該隊列中取出任務並將被阻塞的任務放入隊列中?

  2. 我們將如何知道任務是否被阻塞或正在執行?

回答

1

如果所有當前正在執行的任務,得到了阻止會發生什麼?是否有辦法從該隊列中取出任務並將被阻塞的任務放入隊列中?

不,這裏沒有設施。如果一個任務開始執行並被阻塞,那麼將阻塞該線程直到它正常完成,或者被線程池關閉中斷。

我們將如何知道任務是否被阻塞或正在執行?

如果您需要知道這一點,那麼您需要將一些知識放入任務代碼本身,然後可以通過應用程序的其他部分查詢。顯然,在將其提交給執行者之前,其他人需要保持對任務的引用以允許其工作。