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方法: 线程

相关文章
相关标签/搜索