线程池的四种的创建:
(1)newCachedThreadPool创建一个可缓存线程池
(2)newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数。
(3)newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任 务执行。
(4)newSingleThreadExecutor 创建一个单线程化的线程池。
我们需要使用到 单线程化线程池(newSingleThreadExecutor):串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。查看源码不难发现是用Queue队列先进先出的特性来实现。
public class singleThreadExecutor {
public static void main(String[] args){
String[] strs = {"A","B","C","D","E","F","G","H","I","J","K"};
//单线程化的线程池
ExecutorService executorService = Executors.newSingleThreadExecutor();
for (String str:
strs) {
executorService.execute(new Runnable() {
@Override
publi