码迷,mamicode.com
首页 > 编程语言 > 详细

加入一个线程

时间:2018-08-15 21:05:07      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:现在   情况   div   完成   问题   int   效果   nbsp   超时   

一个线程X可以在其他线程Y之上调用join()方法,其效果是X等待一段时间直到第二个线程Y结束才继续执行。如果某个线程在另一个线程t上调用t.join(),此线程将被挂起,直到目标线程t结束才恢复。
也可以在调用join()时带上一个超时参数(单位可以是毫秒,或者毫秒和纳秒),这样如果目标线程在这段时间到期时还没有结束的话,join方法总能返回。
对join方法的调用可以被中断,做法是在调用线程上调用interrupt方法,这时需要用到try-catch语句。——《Java编程思想》
 
调用谁(线程A)的join方法,就要等谁(A)执行结束。
 
比喻解析:
一般情况    
    假如我开车在路上兜风,经过路边一家店,发现我的朋友在店里,他说他要跟我一块兜风(他调用的他的join方法),我答应了。不过他点了一杯奶茶,要等一会儿。所以我的车就停在原地了,没有继续向前跑。(我要等待它完成)等到他拿到奶茶,上车后,我就继续向前开。(我继续执行我的任务)
    
这里,我和他都是线程,我是线程A,他是线程B。我的任务是开车兜风,而他的任务是等待奶茶完成。
 
超时情况
    他说要等奶茶做好,我说“我可没那么多时间,我给你3分钟”,他答应了。但是过了3分钟,他奶茶还是没好。我不耐烦,就走了(继续执行我的任务)
 
打断情况
    他说等奶茶做好就上车,我就在原地等。突然他接到一个电话,他的组长大发雷霆,叫他马上回公司,他写的代码有问题。然后他对我说“完了,我现在要马上回公司。对不住啊”(他调用了他的interrupt方法)。我骂了一句“艹”,然后继续向前开(继续执行我的任务)。他呢,则奶茶都没来得及拿(他自己的任务也没完成),就会屁颠屁颠地回公司了。

加入一个线程

标签:现在   情况   div   完成   问题   int   效果   nbsp   超时   

原文地址:https://www.cnblogs.com/longfurcat/p/9483895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!