实现方案:java
1.调用线程的join方法:阻塞主线程ide
2.线程池测试
package com.java.thread.test; public class MyThread01 implements Runnable { @Override public void run() { System.out.println("当前线程:"+Thread.currentThread().getName()); } }
package com.java.thread.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Ctest01 { public static void main(String[] args) throws Exception { MyThread01 myThread01 = new MyThread01(); Thread t1 = new Thread(myThread01,"thread01"); Thread t2 = new Thread(myThread01,"thread02"); Thread t3 = new Thread(myThread01,"thread03"); // 实现多条线程顺序执行 // 默认状况下,依次调用线程的start()方法,线程执行的顺序随机 // t1.start(); // t2.start(); // t3.start(); // 方法一:使用join()方法来阻塞主线程,线程得以顺序执行 t1.start(); t1.join(); t2.start(); t2.join(); t3.start(); t3.join(); // 方法二: t1 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread:thread01"); } },"thread01"); t2 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread:thread02"); } },"thread02"); t3 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread:thread03"); } },"thread03"); ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.submit(t1); executorService.submit(t2); executorService.submit(t3); executorService.shutdown(); System.out.println("main ......"); } }
执行测试类的main方法: 线程