博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java并发编程--多线程中的join方法详解
阅读量:4598 次
发布时间:2019-06-09

本文共 1387 字,大约阅读时间需要 4 分钟。

Java Thread中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码

例如:定义一个People类,run方法是输出姓名年龄。

class People implements Runnable{    public String name ;    public int age;    public People(String name , int age){        this.name =name;        this.age = age;    }    @Override    public void run() {                System.out.println("开始输出");        System.out.println("姓名"+name);        System.out.println("年龄"+age);        try {            Thread.sleep(1000);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("========结束=========");            }    }

如果main方法中不使用join 如下

public static void main(String[] args) throws InterruptedException {    People p1 = new People("张三",10);    People p2 = new People("李四",11);    Thread t1 = new Thread(p1);    Thread t2 = new Thread(p2);    t1.start();    t2.start();    }

那么输出为:

开始输出开始输出姓名张三年龄10姓名李四年龄11========结束=================结束=========

可见两个线程是同时开始的。

如果main方法中使用join,如下:

public static void main(String[] args) throws InterruptedException {    People p1 = new People("张三",10);    People p2 = new People("李四",11);    Thread t1 = new Thread(p1);    Thread t2 = new Thread(p2);    t1.start();    t1.join();    t2.start();    t2.join();    }

输出

开始输出姓名张三年龄10========结束=========开始输出姓名李四年龄11========结束=========

可见是执行完了第一个线程之后再执行的第二个线程。

转载于:https://www.cnblogs.com/gnivor/p/4686110.html

你可能感兴趣的文章
调用底层不能直接访问的类和方法
查看>>
清理缓存的方法 #DF
查看>>
JAVA array,map 转 json 字符串
查看>>
2017-12-27练习
查看>>
NET设计规范(二) 命名规范
查看>>
VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2
查看>>
SSL延迟
查看>>
android新手关于左右滑动的问题,布局把<android.support.v4.view.ViewPager/><ImageView/> 放在上面就不行了。...
查看>>
深入理解DIP、IoC、DI以及IoC容器
查看>>
赋值文件
查看>>
Vue 数组 字典 template v-for 的使用
查看>>
蓝牙模块选择经验谈
查看>>
java中==和equals
查看>>
CCActionPageTurn3D
查看>>
python random
查看>>
esp32-智能语音-cli(调试交互命令)
查看>>
netty与MQ使用心得
查看>>
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
查看>>
swoolefy PHP的异步、并行、高性能网络通信引擎内置了Http/WebSocket服务器端/客户端...
查看>>
Python学习笔记
查看>>