for 的構(gòu)造函數(shù)具有asThreadPoolExecutor的類型參數(shù)。 假設(shè)我有一個(gè)這樣的聲明BlockingQueueRunnableThreadPoolExecutorThreadPoolExecutor customThreadPool = new ThreadPoolExecutor(numberOfAvailableProcessors, numberOfAvailableProcessors, 2L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), Executors.defaultThreadFactory(), new RejectedExecutionHandler() { @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor threadPoolExecutor) { // Do something here to handle it } }); 我的問題是什么時(shí)候做類似的事情:customThreadPool.submit(new Callable<Integer>() { @Override public Integer call() throws Exception { return Math.toIntExact(Thread.currentThread().getId()); } }) ThreadPool即使我指定了 to 的類型參數(shù),如何處理Queue這個(gè)問題Runnable?這個(gè)任務(wù)將如何排隊(duì)?
1 回答

鴻蒙傳說
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
那是因?yàn)樗鼘⒛?code>Callable任務(wù)包裝為RunnableFuture
在排隊(duì)或執(zhí)行之前。
這RunnableFuture
實(shí)現(xiàn)Runnable
了接口(除了Future
)。
因此,所有可調(diào)用對(duì)象都可以毫無問題地排隊(duì)和執(zhí)行。
查看AbstractExecutorService
源以獲取更多信息。
添加回答
舉報(bào)
0/150
提交
取消