我怎么知道ThreadPoolTaskExecutor已满?我用
e.getActiveCount()>=e.getMaxPoolSize()
如果我在多线程环境中使用它可以吗?
答案 0 :(得分:0)
调用e.getThreadPoolExecutor().getQueue()
会获得基础BlockingQueue
使用的ThreadPoolExecutor
。这是安全的,因为ThreadPoolTaskExecutor
的基础ThreadPoolExecutor
和ThreadPoolExecutor
BlockingQueue
都是final
。
获得BlockingQueue
后,您可以调用remainingCapacity()
,这将返回队列在调用方法时可以容纳的其他元素的数量。这是安全的,因为BlockingQueue
本身是为并发使用而设计的。