既然nodejs是單線程的,那么它怎么處理并發(fā),難道要排隊么
2 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊
單線程解決高并發(fā)的思路就是采用非阻塞,異步編程的思想。簡單概括就是當(dāng)遇到非常耗時的IO操作時,采用非阻塞的方式,繼續(xù)執(zhí)行后面的代碼,并且進(jìn)入事件循環(huán),當(dāng)IO操作完成時,程序會被通知IO操作已經(jīng)完成。主要運(yùn)用JavaScript的回調(diào)函數(shù)來實現(xiàn)。
多線程雖然也能解決高并發(fā),但是是以建立多個線程來實現(xiàn),其缺點是當(dāng)遇到耗時的IO操作時,當(dāng)前線程會被阻塞,并且把cpu的控制權(quán)交給其他線程,這樣帶來的問題就是要非常頻繁的進(jìn)行線程的上下文切換。
- 2 回答
- 0 關(guān)注
- 725 瀏覽
添加回答
舉報
0/150
提交
取消