黑马程序员技术交流社区

标题: java 线程问题。 [打印本页]

作者: 路文龙    时间: 2015-3-8 15:25
标题: java 线程问题。
1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?
2、我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
作者: mengxiang1993    时间: 2015-3-8 15:37
join就是阻塞调用线程,直到该线程结束后,调用线程才能继续执行。
作者: 路文龙    时间: 2015-3-8 17:14
mengxiang1993 发表于 2015-3-8 15:37
join就是阻塞调用线程,直到该线程结束后,调用线程才能继续执行。

能举个例子说明一下,join()阻塞了哪个线程么,哪个是调用线程?谢谢。
作者: mengxiang1993    时间: 2015-3-9 14:15
例如现在有三个线程 t1,t2,t3
t1.join();就是当CPU调用线程t1时,必须执行完t1,才能再执行t2.t3,也就是t1阻塞了cpu调用线程,t1也就是所谓的阻塞线程,这里说的调用线程是这个意思,不是说线程本身。

作者: 小十    时间: 2015-3-9 14:28
第二个问题问什么不直接调用run方法的问题。这个我举个例子吧!就相当于车在路上跑,跑是车的方法。但是你让那辆车跑呢?让那辆车跑就开启那辆车。是得先开起车。
作者: 突然世界晴    时间: 2015-3-9 16:04
join阻塞进程不行吧。
比如主线程 t1 t2
jiont1的话,主线程不动,t1和t2会抢获取权得
作者: 突然世界晴    时间: 2015-3-9 16:06
设置睡眠等待唤醒,不知道行不行。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2