for循環(huán)中異步轉(zhuǎn)同步如何改造??
代碼結(jié)構(gòu)描述如下:
for (int i = 0; i < 5; i++) { new Thread(new Runnable(){}).start(); new Thread(new Runnable(){}).start(); }
for循環(huán)中的兩個(gè)線程<愛尬聊_生活百科>,前者是生產(chǎn)者,后者是消費(fèi)者,他們通過定義一個(gè):
public static BlockingQueue<Object>taskQueue = new ArrayBlockingQueue<Object>(2500);
聯(lián)系起來,現(xiàn)在想for循環(huán)第一次執(zhí)行完之后,兩個(gè)線程的生產(chǎn)者全生產(chǎn)完數(shù)據(jù),消費(fèi)者全部消費(fèi)完數(shù)據(jù)之后,再執(zhí)行for循環(huán)的第二次循環(huán)。
在對(duì)代碼結(jié)構(gòu)改動(dòng)最小的情況下,我考慮了callable countdownlatch,都不太合適,有沒有更好的解決方案呢?
高震 7小時(shí)前
這樣的要求為毛要開線程
化一記憶奇 7小時(shí)前
改造一下試試使用java.util.concurrent.CompletionService
坐看云海前世的深藍(lán)色颯然風(fēng)雪走 7小時(shí)前
消費(fèi)者全部消費(fèi)完數(shù)據(jù)之后,再執(zhí)行for循環(huán)的第二次循環(huán)
,那你開線程的意義在哪里?,直接同步執(zhí)行不就行了
坐看云海前世的深藍(lán)色颯然風(fēng)雪走 7小時(shí)前
生產(chǎn)->消費(fèi)->生產(chǎn)->消費(fèi)....