Eventlet是一個用來處理和網絡相關的python網絡庫,並且能夠經過協程來實現併發,在eventlet裏,把「協程」叫作greenthread。python
所謂併發,就是開啓了多個greenthread,而且對這些greenthread進行管理,以實現非阻塞式的I/O。網絡
關於協程,大體能夠理解成容許子程序能夠屢次暫停和恢復執行,是實現多任務的一種有效手段,多線程
Eventlet的基礎是greenlet,這是實現"協程(Coroutine)" 的基礎。併發
協程又被稱做 "微線程「,簡單點說就是在一個原生線程上經過"拷貝"和"切換" 堆棧幀數據來實現執行多個工做,高併發
看上去和傳統的"單CPU,多線程(Threading)"執行方式差很少。spa
在 Python 中,使用協程來作併發是對於系統資源消耗最小,能夠最大化的作高併發,可是,須要咱們本身來作調度,操做系統不會主動調度任務。操作系統