如何使ThreadPoolExecutor具有无限的队列,并且不会拒绝或使队列中的任何任务超时

问题描述

| 我只想在其中插入一批任务,并且不想丢失任何一个。     

解决方法

        @virsir, 您曾特别询问过有关创建实例“ 0”的问题。但是我想知道是否有任何实现
ExecutorService
接口的类都可以。由于
ThreadPoolExecutor
实现
ExecutorService
,所以这并不是一个很大的飞跃。
java.util.concurrent.Executors
类提供了一些有用的函数,用于创建处理某些常见情况的线程池。 我最近在项目中使用ѭ5来创建几个不同的线程池。它返回一个实现ExecutorService的对象。我毫不费力地将数万个Runnable实例提交到10个线程的池中,并且工作非常顺利。 根据Java 5文档,此方法:   创建一个重用线程池   固定的一组线程   共享无界队列。如果有线程   由于以下原因而终止   在关机之前执行,一个新的   如果需要将取代它的位置   执行后续任务。 由于据说该方法创建了一个“无限制队列”,因此对于可以提交的任务数量应该没有人为限制。     ,        队列绝不能丢掉作业;它只有有限数量的线程可以在任何特定时间运行。其余作业将排队等待其他线程退出时占用下一个可用线程。 作业的执行顺序取决于您使用的队列。优先级队列,FIFO队列等...