我怎么知道阻塞库方法是否在他们拥有的线程中执行?

时间:2016-11-30 13:12:53

标签: java multithreading

JCIP摘要 -

  

任务不会在他们拥有的线程中执行;他们借用了所拥有的线程   一个服务,如线程池......

     

这就是大多数阻塞库方法简单抛出的原因   InterruptedException响应中断。他们永远不会   在他们拥有的线程中执行,..

考虑一个帖子中的片段:

RCTPromiseResolveBlock

由于void run(){ try{ blockingQueue.put(...); // statement 1 }catch(InterruptedException e){ // exception handling.... } } 是一种阻止方法,这是否意味着任务(语句1)永远不会在它拥有的上述线程中执行?

1 个答案:

答案 0 :(得分:1)

  

任务不在他们拥有的线程中执行

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

在你的代码中,task(语句1)在你为它分配的线程(运行方法找到)中执行,task(语句1)将不会在它拥有的线程中执行(创建)。