Executors 类中的 newSingleThreadExecutor() 方法



上述方法的定义是" 创建一个执行程序,该执行程序使用在无限队列中操作的单个工作线程。

我见过使用上述方法"并行执行具有不同输入的方法的多个实例"的示例,方法是在数据结构中添加不同的任务,如"Set"或"List"并调用方法invokeAll()

这里我对一件事感到困惑:如果上述方法只创建一个工作线程,怎么可能并行运行任务?

当然,还有其他方法,如newCachedThreadPool()newFixedThreadPool(int numberOfThreads)- 如果需要,这里会创建许多线程以并行运行。

使用newSingleThreadExecutor一次不能运行多个任务:

ExecutorService executor = Executors.newSingleThreadExecutor();

但是,它有一个工作队列,您可以在其中放置大量任务,这些任务只需在队列中等待执行,然后由该执行器中的单个线程逐个执行。

相关内容

  • 没有找到相关文章

最新更新