4
我有一個長時間運行的進程,它監聽事件並執行一些緊張的處理。動態線程池
目前我使用Executors.newFixedThreadPool(x)
來節制同時運行的作業數量,但取決於一天中的時間和其他各種因素,我希望能夠動態增加或減少併發線程數。
如果我減少併發線程的數量,我希望當前正在運行的作業很好地完成。
是否有Java庫讓我控制並動態增加或減少線程池中運行的併發線程數量? (該類必須實現ExecutorService)。
我必須自己實施嗎?
它不適合我。我使用visual vm查看線程池大小,並始終顯示已設置的初始池大小。 – Innovation
用代碼發佈一個新問題來分析問題。 –
您還需要在創建newFixedThreadPool之後設置maxPoolSize()。如果您沒有這樣做,那麼在這種情況下,maxPoolSize值將設置爲分配給newFixedThreadPool的值,之後如果您想將setCorePoolSize設置爲大於newFixedThreadPool的值,將不會採用新的池大小,因爲在這種情況下,它將大於maxPoolSize。 – Innovation