2
所以我使用executorservice來創建一個線程池。如何獲取執行程序服務中隊列中的任務數量?
ExecutorService executor = Executors.newSingleThreadExecutor();
我試圖訪問該線程池的隊列中的任務數。我發現沒有辦法去解決這個問題。 我知道有一些方法可以在threadpoolexecutor中獲得隊列大小,但是我怎麼用executorservice對象來做到這一點。
就像我說的,我可以得到隊列的信息,如果我創建了這樣的
ThreadPoolExecutor tpExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
我知道我可以使用tpExecutor.queue.size(),以獲得在隊列中的任務數量的ThreadPoolExecutor線程池。 但目前我已經使用Executor Service聲明瞭我的線程池。我怎樣才能做到這一點? 如果人們可以編寫代碼並演示,那將是可觀的。
'Executors.newFixedThreadPool(nThreads)'哪裏'nThreads = 1'? – nullpointer
我能從中得到什麼?我如何獲得線程池隊列中的任務數量?請詳細說明。 – africandrogba
假設'newSingleThreadExecutor()'實際上返回了一個'ThreadPoolExector'類型,您可以只投出對象並調用https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ ThreadPoolExecutor.html#getActiveCount--不知道爲什麼這很重要。 – markspace