假设我在 a 中排队了一个工作项ThreadPool
,但如果没有要处理的数据(从 a 读取BlockingQueue
),则工作项会阻塞。如果队列是空的并且没有更多的工作进入队列,那么Thread.Interrupt
如果我想中断阻塞任务,我必须调用该方法,但是如何用 a 做同样的事情ThreadPool
呢?
代码可能如下所示:
void Run()
{
try
{
while(true)
{
blockingQueue.Dequeue();
doSomething();
}
}
finally
{
countDownLatch.Signal();
}
}
我知道在这种情况下最好的办法是使用常规Thread
,但我想知道是否有ThreadPool
等效的方法来中断工作项。