1. 程式人生 > >GIL線程全局鎖 協程

GIL線程全局鎖 協程

就是 任務 多線程 sch glob python user log con

GIL線程全局鎖

線程全局鎖(Global Interpreter Lock),即Python為了保證線程安全而采取的獨立線程運行的限制,說白了就是一個核只能在同一時間運行一個線程.對於io密集型任務,python的多線程起到作用,但對於cpu密集型任務,python的多線程幾乎占不到任何優勢,還有可能因為爭奪資源而變慢。

見Python 最難的問題

解決辦法就是多進程和下面的協程(協程也只是單CPU,但是能減小切換代價提升性能).

19 協程

知乎被問到了,呵呵噠,跪了

簡單點說協程是進程和線程的升級版,進程和線程都面臨著內核態和用戶態的切換問題而耗費許多切換時間,而協程就是用戶自己控制切換的時機,不再需要陷入系統的內核態.

Python裏最常見的yield就是協程的思想!可以查看第九個問題.

GIL線程全局鎖 協程