本帖最后由 画了一个圈儿 于 2014-8-18 09:47 编辑
join()方法的作用:临时加入线程执行- class JoinDemo
- {
- public static void main(String[] args) throws Exception
- {
- Join jo = new Join();
- Thread t1 = new Thread(jo);
- Thread t2 = new Thread(jo);
- t1.start();
- t1.join(); //主线程将CPU执行权交给线程t1
- //t1运行结束后再将执行术交还给主线程
- t2.start();
- ......
- }
- }
复制代码
如上代码所示,仅开启一个线程t1,之后就调用t1. join()时:线程t1会得到CPU执行权,t1执行结束后,再将执行权交还给主线程,t2开启后,主线程与t2交替执行。
- class JoinDemo
- {
- public static void main(String[] args) throws Exception
- {
- Join jo = new Join();
- Thread t1 = new Thread(jo);
- Thread t2 = new Thread(jo);
- t1.start();
- t2.start();
- t1.join(); //主线程将CPU执行权交给线程t1
- //此时t1、t2都有执行资格,它们会随机交替执行
- //t1运行结束后再将执行术交还给主线程
- ......
- }
- }
复制代码如果t1、t2都开启,再调用t1. join():主线程将执行权交给t1,此时由于t1、t2都有执行资格,则两线程会随机交替执行。当t1运行结束后,将执行权交还给主线程。
|