上述方法的定义是" 创建一个执行程序,该执行程序使用在无限队列中操作的单个工作线程。
我见过使用上述方法"并行执行具有不同输入的方法的多个实例"的示例,方法是在数据结构中添加不同的任务,如"Set"或"List"并调用方法invokeAll()
这里我对一件事感到困惑:如果上述方法只创建一个工作线程,怎么可能并行运行任务?
当然,还有其他方法,如newCachedThreadPool()
,newFixedThreadPool(int numberOfThreads)
- 如果需要,这里会创建许多线程以并行运行。
使用newSingleThreadExecutor
一次不能运行多个任务:
ExecutorService executor = Executors.newSingleThreadExecutor();
但是,它有一个工作队列,您可以在其中放置大量任务,这些任务只需在队列中等待执行,然后由该执行器中的单个线程逐个执行。