ThreadPoolExecutor的坑
2015-06-29 14:32 Loull 阅读(387) 评论(0) 收藏 举报
ExecutorService executorService = new ThreadPoolExecutor(0, MAX_THREAD_NUM, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());//FIXME 这里有个坑
这个线程池将没法工作。
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)
工作机制:
先查看corePoolSize的线程是否有空闲的,如果没有空闲的,就往workQueue里面塞,如果workQueue塞满了,才会创建新线程,直到数量达到maximumPoolSize。
所以之前创建的线程池会不停的塞阻塞队列,而没有线程在真正工作。。