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