1. Executors. newSingleThreadExecutor()

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

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