java:thread:順序執行多條線程

 實現方案: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方法: 線程

相關文章
相關標籤/搜索