采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
public static void main(String[] agrs){ thread.join(); thread2.join(); System.out.println(“所有子线程执行完毕”); } 以上代码,thread和thread2都调用join方法的话是不是不一定thread先执行thread2后执行,而是thread和thread2也要竞争cpu资源,可能thread2先执行之后再执行thread?
join是让主线程等thread和thread2,先thread.join();,主线程就先等thread执行完,但是这和thread和thread2的运行顺序无关
main(){ thread1.start(); 1 thread2.start(); 2 thread1.join(); 3 thread2.join(); 4 } 按照我的理解第3行是让主线程阻塞直到thread1运行完run(),也就是在thread1运行完run()之前主线程是不调用thread2.join()的,但是运行结果却是thread1和thread2交替执行(都在抢cpu资源),这是为什么呢
老师我想明白了 3的时候只阻塞主线程 所以并不影响thread1和thread2的运行 到主线程调用4的时候thread1和thread2的run都已执行完毕 并不会对执行结果有所影响
是对的
登录后可查看更多问答,登录/注册
完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题
1.9k 26
942 12
1.1k 12
2.5k 12
1.1k 11