newSingleThreadExecutor并行用例

时间:2017-12-15 18:03:03

标签: java multithreading

我对newSingleThreadExecutor调用的工作原理有疑问。我目前正在运行一个多线程程序。如果我从预先存在的线程中调用newSingleThreadExecutor,它是否会暂停当前线程以执行其任务或与线程并行运行,就像线程情况中的线程一样?

2 个答案:

答案 0 :(得分:1)

Executors.newSingleThreadExecutor()创建一个新线程并执行在该线程上传递给它的所有任务。它并没有阻止当前的线程 - 如果确实如此,它将不会有多大用处。

它被称为单线程,因为如果您在其上执行多个任务,则它不会创建多个线程。相反,它等待一个任务完成,然后在同一个线程上启动下一个任务。

答案 1 :(得分:0)

Executors.newSingleThreadExecutor()只会为您提供一个ExecutorService,它提供管理线程执行的方法。

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html

暂停或不暂停当前线程的行为取决于您的Threads Calls实现。