我对newSingleThreadExecutor调用的工作方式有疑问。我当前正在运行一个多线程程序。如果我从预先存在的线程中调用newSingleThreadExecutor,它将暂停当前线程以执行其任务或与该线程并行运行,就像线程中的线程一样吗?
最佳答案
Executors.newSingleThreadExecutor()
创建一个新线程,并在该线程上执行传递给它的所有任务。它不会阻塞当前线程-如果有的话它不会有太大用处。
之所以称为单线程,是因为如果在其上执行多个任务,则不会创建多个线程。而是,它等待一个任务完成,然后再在同一线程上启动下一个任务。