Java多线程编程----线程间通信--join()方法详解

    在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束。这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就要用到join()方法了。方法join()的作用是等待线程对象销毁。

1、一个简单的例子

    等子线程运行完后再运行主线程

public class MyThread extends Thread{
    public void run() {
        int value = (int) (Math.random() * 10000);
        System.out.println(value);
        try {
            sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

class TestThread {
    public static void main(String[] args) throws InterruptedException {
        MyThread myThread = new MyThread();
        myThread.start();
        myThread.join();
        System.out.println("当threadTest对象执行完毕后再执行");
    }
}
8956
当threadTest对象执行完毕后再执行

如果把myThread.join()方法注释掉,结果就可能 为

当threadTest对象执行完毕后再执行
1323









你可能感兴趣的:(JOIN,线程,通信)