gpt4 book ai didi

java - 我如何知道阻塞库方法是否在它们拥有的线程中执行?

转载 作者:行者123 更新时间:2023-12-01 09:11:35 25 4
gpt4 key购买 nike

JCIP 的摘要 -

Tasks do not execute in threads they own; they borrow threads owned by a service such as a thread pool.....

This is why most blocking library methods simply throw InterruptedException in response to an interrupt. They will never execute in a thread they own,..

考虑线程中的片段:

void run(){
try{
blockingQueue.put(...); // statement 1
}catch(InterruptedException e){
// exception handling....
}
}

由于BlockingQueue.put()是一个阻塞方法,这是否意味着任务(语句1)永远不会在它拥有的上述线程中执行?

最佳答案

Tasks do not execute in threads they own

意味着任务本身不拥有线程,它只在它借用的线程中执行。也就是说,我们无法在不为其分配线程的情况下启动任务,因为任务本身无法创建线程。

在您的代码中,任务(语句 1)在您为其分配的线程(run 方法所在的线程)中执行,任务(语句 1)不会在它自己(创建)的线程中执行。

关于java - 我如何知道阻塞库方法是否在它们拥有的线程中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com