我希望线程池里面的线程能够在4 - 16之间浮动,队列容量为256。我写了下面这样的代码:
ThreadPoolExecutor tExecutor = new ThreadPoolExecutor(16, 16, 60L, TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>(256));
tExecutor.allowCoreThreadTimeOut(true);
其他条件都符合要求,但是这里只能在0 - 16之间浮动。
如果这样写:
ThreadPoolExecutor tExecutor = new ThreadPoolExecutor(4, 16, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>());
tExecutor.allowCoreThreadTimeOut(false);
可以在4 - 16之间浮动,但是队列不能存储数据。
我该怎样设定参数,达到目的呢?
慕斯709654
Java的线程池为什么要用阻塞队列呢?
多线程的队列blockqueue如何理解?
有必要写轮询线程吗?线程池自己不是已经能实现了吗
小白,线程池的实现原理在面试中如何回答
相关分类