Golang調度管理筆記--如何保證G不會被其餘G的系統調用、網絡調用阻塞?

GMP模型中,G在發生系統調用或網絡調用時,如何保證其餘G不被阻塞?web 系統調用經過syscall,先解綁PM,P選擇或新建M,從新調度,G狀態爲syscall,阻塞當前M。系統調用結束後獲取PLocal G隊列或全局G隊列 chan阻塞,chan結構體中sendq, recvq保存待寫入或讀取的g,設置狀態Waiting。發生讀取或接受時經過goready激活G,從新調度 netpoll阻塞
相關文章
相關標籤/搜索