同步與非同步 阻塞與非阻塞

2021-08-22 03:30:09 字數 623 閱讀 4720

設想一下這個情景,你列了個購物清單(a,b,c,d)去商店買東西,你向老闆詢店問有沒有你想要的a(i/o操作),於是老闆去倉庫檢視,這個時候假如你在前台等待老闆查詢結果回來那麼這種詢問等待的方式為同步,此時你相當於被掛起,是處於阻塞狀態的,而如果你沒有在前台等待老闆的查詢而是接著進店逛看有沒有你想要的b,c,d,老闆查詢回來會主動過來找你告訴你查詢結果,那麼這種查詢不等待的方式為非同步,這個時候你是非阻塞的。有了這個例子,那麼相關概念就很好理解了。顯然,非同步的方式效率更高。

同步:發出乙個呼叫,並等待呼叫結果。

非同步:發出乙個呼叫,該呼叫不等待呼叫的結果直接返回,當結果出來時,被呼叫物件會同過某種方式來通知呼叫者返回值是多少。

同步與非同步強調的是訊息通訊機制,而阻塞與非阻塞強調的是在等待呼叫結果時的狀態。

執行緒.join()其實是令所有先完成的執行緒處於阻塞狀態,等到所有的執行緒都完成了,主線程才會繼續向下執行**。

這也可以理解為什麼因為有gil存在的python多執行緒適合與i/o密集型應用了。當進入乙個io操作時,可以釋放當前的鎖,轉向下乙個io操作。

記錄的雖然簡單,但是總算是從0邁向了1.

asynchronous – a syn chro nous  a sin korol ners 發音分解下,大概會讀了。

同步與非同步,阻塞與非阻塞

同步與非同步阻塞與非阻塞 阻塞和非阻塞關注的是程式在等待呼叫結果 訊息,返回值 時的狀態.阻塞呼叫是指呼叫結果返回之前,當前執行緒會被掛起。呼叫執行緒只有在得到結果之後才會返回。非阻塞呼叫指在不能立刻得到結果之前,該呼叫不會阻塞當前執行緒。還是上面的例子,你打 問書店老闆有沒有 分布式系統 這本書,...

同步與非同步 阻塞與非阻塞

摘要 一直為同步非同步,阻塞非阻塞概念所困擾,特定總結了下,原來是這麼個意思 一直為同步非同步,阻塞非阻塞概念所困擾,特定總結了下 1 概念介紹 2 訊息通知ps 呼叫者獲取依賴服務非同步 結果一般有兩種方式 一種是主動去輪訓查詢非同步 的結果,一種呼叫依賴服務時傳入乙個callback方法或者 位...

非同步與同步 阻塞與非阻塞

同步和非同步關注的是訊息通訊機制 synchronous communication asynchronous communication 所謂同步,就是在發出乙個 呼叫 時,在沒有得到結果之前,該 呼叫 就不返回。但是一旦呼叫返回,就得到返回值了。換句話說,就是由 呼叫者 主動等待這個 呼叫 的結...