这才刚刚学完多线程,最近在知乎https://zhuanlan.zhihu.com/p/...又看到协程这个概念,但是文章讲的我不明不白,而且前面只提到了协程相比多线程的三个优点,请问协程究竟是什么?他各有什么优缺点?
巴扎黑2017-04-18 10:05:13
協程類似線程, 但是線程是作業系統底層提供的,而協程是平台自己提供的。
協程是基於線程的,一個協程庫底層還是使用的操作系統的線程來支持,然後這個庫自己完成任務調度的事情,而不依賴於系統的調度。
協程的優點你貼的連結裡已經說了,但是缺點就是實作比較複雜,實際效能會低於直接使用執行緒。
伊谢尔伦2017-04-18 10:05:13
def 协程1():
pass
def 协程2():
pass
def 协程3():
pass
def 协程n():
pass
while 1:
协程1()
协程2()
协程3()
协程n()
協程就是一個函數,然後死循環調用,
以上就是協程的基本思想。沒什麼神秘的~
需要配合非同步IO使用,避免阻塞~