下面由java入门递次栏目为人人引见如安在java中让线程递次实行,愿望对人人有所协助!
我们须要完成如许一个运用场景:
1.早上;2.测试职员、产物司理、开辟职员连续的来公司上班;3.产物司理计划新需求;4.开辟职员开辟新需求功用;5.测试职员测试新功用。
计划需求,开辟需求新功用,测试新功用是一个有递次的,我们把thread1看作产物司理,thread2看作开辟职员,thread3看作测试职员。
运用线程的 join 要领
join():是Theard的要领,作用是挪用线程需守候该join()线程实行完成后,才继承用下运转。
运用场景:当一个线程必需守候另一个线程实行终了才实行时能够运用join要领。
实例以下:
package com.zhangsf.javabase.thread.order; /** * @author zhangsf * 经由过程子递次join使线程按递次实行 */ public class ThreadJoinDemo { public static void main(String[] args) { final Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("产物司理计划新需求"); } }); final Thread thread2 = new Thread(new Runnable() { @Override public void run() { try { thread1.join(); System.out.println("开辟职员开辟新需求功用"); } catch (InterruptedException e) { e.printStackTrace(); } } }); Thread thread3 = new Thread(new Runnable() { @Override public void run() { try { thread2.join(); System.out.println("测试职员测试新功用"); } catch (InterruptedException e) { e.printStackTrace(); } } }); System.out.println("早上:"); System.out.println("测试职员来上班了..."); thread3.start(); System.out.println("产物司理来上班了..."); thread1.start(); System.out.println("开辟职员来上班了..."); thread2.start(); } }
运转效果:
运用主线程的 join 要领
这里是在主线程中运用join()来完成对线程的壅塞。
package com.zhangsf.javabase.thread.order; /** * @author zhangsf * 经由过程主递次join使线程按递次实行 */ public class ThreadMainJoinDemo { public static void main(String[] args) throws Exception { final Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("产物司理正在计划新需求..."); } }); final Thread thread2 = new Thread(new Runnable() { @Override public void run() { System.out.println("开辟职员开辟新需求功用"); } }); final Thread thread3 = new Thread(new Runnable() {zzzz @Override public void run() { System.out.println("测试职员测试新功用"); } }); System.out.println("早上:"); System.out.println("产物司理来上班了"); System.out.println("测试职员来上班了"); System.out.println("开辟职员来上班了"); thread1.start(); //在父历程挪用子历程的join()要领后,父历程须要守候子历程运转完再继承运转。 System.out.println("开辟职员和测试职员歇息会..."); thread1.join(); System.out.println("产物司理新需求计划完成!"); thread2.start(); System.out.println("测试职员歇息会..."); thread2.join(); thread3.start(); } }
运转效果:
让线程递次实行的要领另有许多,今后会为人人逐一引见。
以上就是java中怎样让线程递次实行的细致内容,更多请关注ki4网别的相干文章!