nodejs裏面採用了異步機制。下面對比說明同步異步機制、阻塞與非阻塞機制的區別。
好了,小明去銀行取錢了。
同步:發出一個功能調用,沒有得到結果時,該調用不會返回。
在ATM前排隊取款。
異步:調用發出後,處理這個調用的部件通過狀態、通知來通知調用者,或者通過回調函數來處理這個調用。
在銀行取號,然後到自己時,大堂經理通知自己去前臺取款。
阻塞:調用函數返回結果之前,當前進程會被掛起。
取款時不幹其他事情。
非阻塞:不能得到結果,也會立即返回,而不會去阻塞當前進程。
取款時可以給客戶打電話等等。
同步阻塞:排隊取款,並不幹其他事情。效率最低。
同步非阻塞:排隊取款,不時打電話。進程需要不斷切換,效率低下。
異步阻塞:排號取款,不幹其他事情。
異步非阻塞:牌號取款,不時打電話。效率最高。