为了账号安全,请及时绑定邮箱和手机立即绑定

python的协程是什么?和多线程有啥区别吗?

python的协程是什么?和多线程有啥区别吗?

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

4 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

协程类似于线程, 但是线程是操作系统底层提供的,而协程是平台自己提供的。
协程是基于线程的,一个协程库底层还是使用的操作系统的线程来支持,然后这个库自己完成任务调度的事情,而不依赖于系统的调度。
协程的优点你贴的链接里已经说了,但是缺点就是实现比较复杂,并且实际性能会低于直接使用线程。

查看完整回答
反对 回复 2019-03-01
?
炎炎设计

TA贡献1808条经验 获得超4个赞

协程其实就是函数调用,相比线程更为轻量级,详情可以查看协程

查看完整回答
反对 回复 2019-03-01
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

def 协程1():
    pass
def 协程2():
    pass
def 协程3():
    pass
def 协程n():
    pass

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

协程就是一个个函数,然后死循环调用,
以上就是协程的基本思想。没什么神秘的~
需要配合异步IO使用,避免阻塞~

查看完整回答
反对 回复 2019-03-01
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

协程的概念2楼给出的链接解释很详细,另外可以了解下gevent。一个基于协程的库。了解完这个相信会对协程有更好的理解

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 1747 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信