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方法将线程添加进任务队列并执行输出顺序如下