首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何知道阻塞库方法是否在它们拥有的线程中执行?

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

Stack Overflow用户
提问于 2016-11-30 13:12:53
回答 1查看 74关注 0票数 0

来自JCIP的摘要-

任务不会在它们拥有的线程中执行;它们借用服务(如线程池)拥有的线程…… 这就是为什么大多数阻塞库方法只是在响应中断时抛出InterruptedException。他们永远不会在他们拥有的线程中执行。

考虑一下线程中的片段:

代码语言:javascript
运行
复制
void run(){
   try{
       blockingQueue.put(...);          // statement 1
   }catch(InterruptedException e){
       // exception handling....
   }
}

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

EN

回答 1

Stack Overflow用户

发布于 2017-02-09 08:12:34

任务不会在它们拥有的线程中执行。

意味着一个任务不拥有本身的线程(),它只在它借用的线程中执行。也就是说,不为任务分配线程是不可能的,因为任务本身不能创建线程。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40889313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档