同步/非同步(描述網路通訊模式,適用於請求-響應模型)
阻塞/非阻塞(描述程序的函式呼叫方式)
總結,同步非同步和阻塞非阻塞是兩個不同的概念,用簡單的資料庫查詢來舉乙個例子:
如果傳送乙個請求,需要等待資料庫響應,否則將一直等待,這就是同步
如果傳送乙個請求,不需要資料庫響應,就可以繼續傳送下乙個請求(nio模式、**通知模式),或者主動將任務插入佇列中,主動掛起執行緒並釋放cpu(非同步佇列模式),這就是非同步
在第2點中,如果採用非同步佇列模式,會造成執行緒阻塞或超時等待,直至結果返回後才能繼續執行,這就是非同步阻塞
在第2點中,如果採用nio模式、**通知模式,則資料庫io呼叫可以立即返回,這就是非同步非阻塞
一般來說,同步是最簡單的程式設計方式,而非同步程式設計雖然需要一定技術,但是卻能提公升系統效能。對於阻塞與非阻塞,阻塞的實時響應性更好,但在高併發情況下阻塞執行緒數會急劇增加,導致大量的上下文切換會引起掛起/喚醒執行緒的效能損耗,而非阻塞的效能吞吐量更高,但由於其是順序執行每乙個事件,一旦處理某乙個事件過久,會影響後續事件的處理,因此實時響應性較差。
同步 非同步 阻塞 非阻塞總結
發信人 bripengandre 老老實實做人 踏踏實實做事 信區 programming 標 題 同步 非同步 阻塞 非阻塞總結版 發信站 武漢白雲黃鶴站 2008年07月20日11 29 07 星期天 站內信件 以下文字 自 socket 討論區 原文由 bripengandre 所發表 版上已...
阻塞,非阻塞,非同步,同步
之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯 本文 老張愛喝茶,廢話不說,煮開水。出場人物 老張,水壺兩把 普通 水壺,簡稱水壺 會響的水壺,簡稱響水壺 1 老張把水壺放到火上,立等水開。同步阻塞 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。同步非阻...
同步 非同步 阻塞 非阻塞
故事 老王燒開水。出場人物 老張,水壺兩把 普通水壺,簡稱水壺 會響的水壺,簡稱響水壺 老王想了想,有好幾種等待方式 1.老王用水壺煮水,並且站在那裡,不管水開沒開,每隔一定時間看看水開了沒。同步阻塞 老王想了想,這種方法不夠聰明。2.老王還是用水壺煮水,不再傻傻的站在那裡看水開,跑去寢室上網,但是...