日期:2014-05-20  浏览次数:20675 次

ThreadPoolExecutor.CallerRunsPolicy()相关问题问题
ThreadPoolExecutor threadPool = 
new ThreadPoolExecutor(2, 4,3,TimeUnit.SECONDS, new ArrayBlockingQueue(3),new ThreadPoolExecutor.CallerRunsPolicy());  

我定义的最大线程数是4个,但是为什么会有5个线程启动(先启动2个,然后队列里加3个任务,接下来启动了3个线程)???

------解决方案--------------------
探讨
我就是想问为什么会有五个启动,

下面是我的测试片段:
public class TestThreadPool {

//private static int produceTaskSleepTime = 2;
private static int consumeTaskSleepTime = 2000;
private static int produceTaskMa……