读书人

线程学习【8】 join方法

发布时间: 2013-03-22 09:49:50 作者: rapoo

线程学习【八】 join方法
多线程学习------join方法


package com.zzl.thread;/** * join * 当A线程遇到了B线程的.join()方法的时候,A就会等待。等B线程执行完,A线程才会执行。 *  * join可以用来临时加入线程执行 */class JoinRunnable implements Runnable{@Overridepublic void run() {for(int i = 0;i < 10;i++){System.out.println(Thread.currentThread().getName()+"......."+i);}}}public class JoinDemo {public static void main(String[] args) {JoinRunnable r =new JoinRunnable();Thread t1 = new Thread(r);Thread t2 = new Thread(r);t1.start();try {t1.join();} catch (InterruptedException e) {e.printStackTrace();}t2.start();}}

把 try catch注释掉,运行效果如下(两个线程交替抢占cpu资源):
Thread-0.......0Thread-0.......1Thread-1.......0Thread-1.......1Thread-1.......2Thread-0.......2Thread-1.......3Thread-0.......3Thread-0.......4Thread-0.......5Thread-0.......6Thread-0.......7Thread-0.......8Thread-0.......9Thread-1.......4Thread-1.......5Thread-1.......6Thread-1.......7Thread-1.......8Thread-1.......9


如果线程 t1 start后调用了 t1.join(),运行效果如下(t1线程先运行完,然后运行t2线程):
Thread-0.......0Thread-0.......1Thread-0.......2Thread-0.......3Thread-0.......4Thread-0.......5Thread-0.......6Thread-0.......7Thread-0.......8Thread-0.......9Thread-1.......0Thread-1.......1Thread-1.......2Thread-1.......3Thread-1.......4Thread-1.......5Thread-1.......6Thread-1.......7Thread-1.......8Thread-1.......9

读书人网 >编程

热点推荐