4 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用多線程是為了提高程序運(yùn)行的效率。假如有一個(gè)程序,要求用戶輸入多個(gè)算式,計(jì)算出結(jié)果,并分別打印到屏幕上。如果用戶一直沒有輸入,那么無法計(jì)算,更無法打印。如果用戶輸入了,必須要全部輸入完,才能計(jì)算出結(jié)果,再打印到屏幕。
使用線程的話,一個(gè)線程用來等待用戶輸入,一個(gè)用來計(jì)算結(jié)果,一個(gè)用來打印。用戶在輸入算式3的時(shí)候,計(jì)算線程在計(jì)算算式2,打印線程在打印算式1,三個(gè)線程同時(shí)進(jìn)行,減少了等待,這樣就提高了運(yùn)行效率

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
我們的的業(yè)務(wù)實(shí)現(xiàn)上就有這樣一種場景,在一套任務(wù)執(zhí)行的過程中,需要執(zhí)行20多個(gè)子算法,他們可以歸為如下三種類別:1、可獨(dú)立執(zhí)行的算法;2、依賴1中結(jié)果才能執(zhí)行的算法;3、其他算法執(zhí)行完成后才可以執(zhí)行的算法;
這種場景下,我們?yōu)榱颂岣叻?wù)的效率,可以把這三類算法放在三個(gè)線程中來執(zhí)行。2需要等待1執(zhí)行完成后開始執(zhí)行,3需要等待1和2都執(zhí)行完成后才開始執(zhí)行。所以要保證多個(gè)線程的執(zhí)行順序。而這種保證這行順序的方法,我們用jion和CountdownLatch的方式進(jìn)行處理

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
多線程通信的忘得差不多了。。。
js異步的promise,java的futrue好像跟這種情景差不多,
有時(shí)并不是自己想這么寫,而是接口就是這樣,你改不了
比如ajax嵌套
添加回答
舉報(bào)