java 多线程-join插队
发布时间:2020-12-15 08:24:50 所属栏目:Java 来源:网络整理
导读:join 合并线程,插队线程,将此线程执行完成后,再执行其他线程,其他线程阻塞 join是一个成员方法,必须通过Thread对象调用 public class n {public static void main(String[]args) throws InterruptedException{ Thread t =new Thread(()- { for(int i=0;
join
合并线程,插队线程,将此线程执行完成后,再执行其他线程,其他线程阻塞 join是一个成员方法,必须通过Thread对象调用 public class n { public static void main(String[]args) throws InterruptedException { Thread t =new Thread(()-> { for(int i=0;i<5;i++) { System.out.println("a"+i); } }); t.start(); for(int i=0;i<5;i++) { if(i%2==0) { t.join();//插队,此时main主线程被阻塞,插队线程执行完所有步骤再执行main } System.out.println("b"+i); } } } 例二: public class n { public static void main(String[]args) throws InterruptedException { new Thread(new father()).start(); } } class father extends Thread{ public void run() { System.out.println("想抽象,发现没了"); System.out.println("让儿子买中华"); Thread t=new Thread(new son()); t.start(); //不行,各走各的逻辑错误,再加入join先执行完son,再执行father剩下的 try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("接过烟"); } } class son extends Thread{ public void run() { System.out.println("拿钱"); System.out.println("路边玩10秒"); for(int i=0;i<10;i++) { System.out.println(i+"秒过去了"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("去买烟"); System.out.println("回家"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |