我对newSingleThreadExecutor调用的工作原理有疑问。我目前正在运行一个多线程程序。如果我从预先存在的线程中调用newSingleThreadExecutor,它是否会暂停当前线程以执行其任务或与线程并行运行,就像线程情况中的线程一样?
答案 0 :(得分:1)
Executors.newSingleThreadExecutor()
创建一个新线程并执行在该线程上传递给它的所有任务。它并没有阻止当前的线程 - 如果确实如此,它将不会有多大用处。
它被称为单线程,因为如果您在其上执行多个任务,则它不会创建多个线程。相反,它等待一个任务完成,然后在同一个线程上启动下一个任务。
答案 1 :(得分:0)
Executors.newSingleThreadExecutor()只会为您提供一个ExecutorService,它提供管理线程执行的方法。
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
暂停或不暂停当前线程的行为取决于您的Threads Calls实现。