有關(guān)同步異步、阻塞非阻塞的理解,看了很多博客不清楚以下的概括對(duì)否,請(qǐng)各位大佬幫忙看看。
同步與異步:主要闡述任務(wù)之間的依賴關(guān)系,假設(shè)任務(wù)A調(diào)用任務(wù)B,任務(wù)A需要等待任務(wù)B的完成才能繼續(xù)執(zhí)行,這叫同步,而如果任務(wù)A調(diào)用任務(wù)B后立馬返回結(jié)果,并且在B執(zhí)行完后會(huì)主動(dòng)通知A,此時(shí)成為異步。
阻塞與非阻塞:主要闡述任務(wù)與CPU資源的關(guān)系,假設(shè)任務(wù)A調(diào)用任務(wù)B,任務(wù)A需要等待任務(wù)B的完成才能繼續(xù)執(zhí)行,此時(shí)CPU也還保持任務(wù)A所在線程一直等待,這叫阻塞;而如果CPU此時(shí)掛起任務(wù)A所在線程去執(zhí)行其他線程,時(shí)不時(shí)回來詢問A是否阻塞完畢,完畢才有可能執(zhí)行線程A,這叫非阻塞
不知道這樣理解有沒有偏差,希望各位指點(diǎn)一下
2 回答

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
沒有問題,同步與異步關(guān)注的是消息通信機(jī)制,所謂同步,就是在調(diào)用者發(fā)出一個(gè)“調(diào)用”,在得到返回結(jié)果之前,該“調(diào)用”就不返回,一旦調(diào)用返回,就是得到了結(jié)果。異步是指調(diào)用者在發(fā)出“調(diào)用”之后,不必等到調(diào)用結(jié)果就可以直接返回。得到調(diào)用結(jié)果后由被調(diào)用者通知調(diào)用者
阻塞與非阻塞關(guān)注的是程序在等待調(diào)用結(jié)果時(shí)的狀態(tài)。
阻塞調(diào)用是指調(diào)用者在結(jié)果返回之前,當(dāng)前線程會(huì)被掛起,會(huì)一直等到結(jié)果的返回。
非阻塞調(diào)用值在不能立刻得到結(jié)果時(shí),不阻塞當(dāng)前進(jìn)程。
添加回答
舉報(bào)
0/150
提交
取消