SingleThreadExecutor作用
简单一句话概括,就是创建一个单线程的线程池。
示例代码
public class TestMain {
//格式化
static SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//AtomicInteger用来计数
static AtomicInteger number = new AtomicInteger();
public static void main(String[] args) throws Exception {
ExecutorService executorService = Executors.newSingleThreadExecutor();
for (int i = 0; i < 6; i++) {
executorService.execute(new Runnable() {
@Override
public void run() {
System.out.println("运行第" + number.incrementAndGet() + "个线程,当前时间【" + sim.format(new Date()) + "】");
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
运行结果:
总结
可以看到每个任务都是间隔6秒才会被执行,因为线程池里只有一个线程,自然需要等待前一个任务运行结束,线程空闲下来,才能通过这个线程去执行任务。