第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

ScheduledExecutorService:如何等待所有任務(wù)完成然后執(zhí)行更多任務(wù)

ScheduledExecutorService:如何等待所有任務(wù)完成然后執(zhí)行更多任務(wù)

狐的傳說(shuō) 2023-10-13 14:41:31
我的代碼是這樣的:ScheduledExecutorService executor = Executors.newScheduledThreadPool(8);//complex code that call this multiple times too add tasks:executor.schedule(() -> { doRealTask(); }, 0, TimeUnit.MICROSECONDS);//drain the pool on some condition, e.g. meets tasks that can't be parallelized:executor.shutdown();//without this, awaitTermination won't return since all the threads in the pool will be paused, not terminatedexecutor.awaitTermination(1000000, TimeUnit.SECONDS);//continue to add more tasks:executor.schedule(...);最后一個(gè)代碼拋出 java.util.concurrent.RejectedExecutionException 。原因似乎是執(zhí)行器已關(guān)閉。但沒(méi)有“startAgain”功能。顯然創(chuàng)建一個(gè)新的 ScheduledExecutorService 是有效的,但我覺(jué)得我使用了錯(cuò)誤的解決方案。如何在Java中實(shí)現(xiàn)這個(gè)?
查看完整描述

2 回答

?
三國(guó)紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

將您的 future 存儲(chǔ)在列表中,然后使用 get 有效地加入。


List<Future<?>> futures = new ArrayList<>();


futures.add(executor.schedule(() -> { doRealTask(); }, 0, TimeUnit.MICROSECONDS));

而不是關(guān)閉。


for(Future<?> future: futures){

    future.get();

}


futures.clear();

現(xiàn)在您需要處理異常,并且可能在獲取時(shí)包含超時(shí)。


查看完整回答
反對(duì) 回復(fù) 2023-10-13
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

關(guān)閉狀態(tài)是不可逆的,因此如果需要,只需創(chuàng)建一個(gè)新的執(zhí)行器即可。沒(méi)有其他方法可以重用之前的方法。但是,如果您要再次創(chuàng)建它,為什么需要關(guān)閉它呢?如果它有太多任務(wù),并且您可以犧牲它們來(lái)?yè)Q取新任務(wù),那么為每個(gè)任務(wù)配置合理的超時(shí)并配置池本身(例如池和任務(wù)隊(duì)列大?。┦怯幸饬x的。

每次調(diào)用Executor.schedule(() -> { doRealTask(); }, 0, TimeUnit.MICROSECONDS);都會(huì)返回ScheduledFuture實(shí)例,您可以存儲(chǔ)它并稍后處理結(jié)果。


查看完整回答
反對(duì) 回復(fù) 2023-10-13
  • 2 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)