java - python的协程是什么?和多线程有啥区别吗?
高洛峰
高洛峰 2017-04-18 10:03:13
0
4
560

这才刚刚学完多线程,最近在知乎https://zhuanlan.zhihu.com/p/...又看到协程这个概念,但是文章讲的我不明不白,而且前面只提到了协程相比多线程的三个优点,请问协程究竟是什么?他各有什么优缺点?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(4)
巴扎黑

協程類似線程, 但是線程是作業系統底層提供的,而協程是平台自己提供的。
協程是基於線程的,一個協程庫底層還是使用的操作系統的線程來支持,然後這個庫自己完成任務調度的事情,而不依賴於系統的調度。
協程的優點你貼的連結裡已經說了,但是缺點就是實作比較複雜,實際效能會低於直接使用執行緒。

巴扎黑

協程其實就是函數呼叫,相比線程更為輕量級,詳情可以查看協程

伊谢尔伦
def 协程1():
    pass
def 协程2():
    pass
def 协程3():
    pass
def 协程n():
    pass

while 1:
    协程1()
    协程2()
    协程3()
    协程n()

協程就是一個函數,然後死循環調用,
以上就是協程的基本思想。沒什麼神秘的~
需要配合非同步IO使用,避免阻塞~

巴扎黑

協程的概念2樓給出的連結解釋很詳細,另外可以了解下gevent。一個基於協程的庫。了解完這個相信會對協程有更好的理解

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!