Executors. newSingleThreadExecutor()

a.所有的任务会重用同一个线程,如果某个任务发生了异常,才会为后面的任务创建新的线程。

b.而且任务会依次执行,不是随机的。