A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 路文龙 中级黑马   /  2015-3-8 15:25  /  928 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?
2、我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?

6 个回复

倒序浏览
join就是阻塞调用线程,直到该线程结束后,调用线程才能继续执行。
回复 使用道具 举报
mengxiang1993 发表于 2015-3-8 15:37
join就是阻塞调用线程,直到该线程结束后,调用线程才能继续执行。

能举个例子说明一下,join()阻塞了哪个线程么,哪个是调用线程?谢谢。
回复 使用道具 举报
例如现在有三个线程 t1,t2,t3
t1.join();就是当CPU调用线程t1时,必须执行完t1,才能再执行t2.t3,也就是t1阻塞了cpu调用线程,t1也就是所谓的阻塞线程,这里说的调用线程是这个意思,不是说线程本身。
回复 使用道具 举报
第二个问题问什么不直接调用run方法的问题。这个我举个例子吧!就相当于车在路上跑,跑是车的方法。但是你让那辆车跑呢?让那辆车跑就开启那辆车。是得先开起车。
回复 使用道具 举报
join阻塞进程不行吧。
比如主线程 t1 t2
jiont1的话,主线程不动,t1和t2会抢获取权得
回复 使用道具 举报
设置睡眠等待唤醒,不知道行不行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马