多线程和并发(四)使用newSingleThreadExecutor让线程按顺序执行

newSingleThreadExecutor是用来创建线程池(关于线程池以后专门介绍)的一种方法,表示创建一个单线程的线程池,这种情况下只有一个线程在工作,如果这个线程由于各种原因结束,则会创建一个新的线程来代替他。当任务提交时会按顺序插入任务队列,执行时从队列头部取出任务执行,保证了所有任务的执行顺序按照提交顺序来执行

接下来做个简单的测试(后期讲解线程池时再详细介绍),首先创建三个线程任务,分别用来输出A,B,C

​
public class ThreadA implements Runnable{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("A");
	}
	
}

​
public class ThreadB implements Runnable{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("B");
	}
	
}
public class ThreadC implements Runnable{

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("C");
	}
	
}

然后创建测试类

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class SingleThreadExecutor {
	
	public static void main(String[] args) {
		
		Executor executor=Executors.newSingleThreadExecutor();
		executor.execute(new Thread(new ThreadA()));
		executor.execute(new Thread(new ThreadB()));
		executor.execute(new Thread(new ThreadC()));	
	}

}

使用Executors的neSinglewThreadExecutor()方法创建,然后execute方法将线程添加进任务队列并执行输出顺序如下

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java之路,多线程和并发,线程池)