大家好,又见面了,我是你们的朋友全栈君。
参考博客:https://www.cnblogs.com/lcplcpjava/p/6896904.html
第一种情况(不使用join):
ThreadJoinTest t1 = new ThreadJoinTest("小明");
ThreadJoinTest t2 = new ThreadJoinTest("小东");
t1.start();
t2.start();
这种情况下,线程t1、线程t2公平争抢
第二种情况(join的作用):
ThreadJoinTest t1 = new ThreadJoinTest("小明");
ThreadJoinTest t2 = new ThreadJoinTest("小东");
t1.start();
t1.join();
t2.start();
线程t1、线程t2使得原来公平争抢,变成了线程t1调用join的这个线程,线程t1拥有了更高的权限(t1线程跑完了,t2才会走)
第三种情况(join不起作用):
ThreadJoinTest t1 = new ThreadJoinTest("小明");
ThreadJoinTest t2 = new ThreadJoinTest("小东");
t1.join();
t1.start();
t2.start();
线程t1、线程t2交替争抢(join不起作用)
原因:采用上面博客的结论
join方法是通过调用线程的wait方法来达到同步的目的的。例如,A线程中调用了B线程的join方法,则相当于A线程调用了B线程的wait方法,在调用了B线程的wait方法后,A线程就会进入阻塞状态
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141857.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...