java实现多线程之间串行执行,网上也有很多的教程。在这里我主要说的是:java Thread类的join函数,
先贴代码吧:
package cn.com.fhz.thread; /** * Created by woni on 18/6/6. * 线程按照串行顺序执行 * * join方法是加入子线程,主线程后面的代码在join方法后面执行, * 注意:主线程在join后面的代码才会在子线程执行完执行 * */ public class ThreadQuene { public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+"\trun"); } },"T1"); Thread t2 = new Thread(new Runnable() { @Override public void run() { try { t1.join(10000); System.out.println(Thread.currentThread().getName()+"\trun"); } catch (InterruptedException e) { e.printStackTrace(); } } },"T2"); Thread t3 = new Thread(new Runnable() { @Override public void run() { try { t2.join(); System.out.println(Thread.currentThread().getName()+"\trun"); } catch (InterruptedException e) { e.printStackTrace(); } } },"T3"); t3.start(); t2.start(); t1.start(); } }
网上也有童鞋说join方法不行,在这里我需要指出来的是,该童鞋没有仔细看,主线程在调用子线程join函数执行后面的代码,才会在子线程都执行完后面执行。
例如上面的代码,主线程t2在子线程t1.join后面输出才行得到串行化的结果。
以上为我初始化学习线程的小小实验,欢迎大神的批评……