【你问我答】Python协程是什么?协程有哪些好处?

问题描述:

Python协程是什么?协程有哪些好处?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入

------------
#我也有问题想询问牛友,怎么办?

欢迎私信@筱茜 说明你的问题,将根据问题具体情况排期进入【你问我答】专场~
私信请注明参与【你问我答】专场哦~

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#Python##悬赏#
全部评论
python 协程其实就是为了解决Python当中线程的问题,因为有全局解释器锁所以Python的线程是伪并发。协程在Python当中是使用底层的事件循环库实现的。简单讲就是轻量级的线程,在用户态切换,更低的切换开销避免用户态和内核态的切换。其次就是协程栈更小,系统可以支持更多的协程,并发数可以更大其次就是因为开销低了并发模型就可以很简单的使用多协程的模型。当然底层实现还是比较有意思的可以去看看libevent之类的事件库。
点赞 回复 分享
发布于 2019-08-20 17:50
Python协程 协程,又称微线程,英文名Coroutine。是在执行函数A时,可以随时中断,去执行函数B,然后中断继续执行函数A(可以自由切换),但这一过程并不是函数调用(没有调用语句),这一整个过程看似像多线程。 协程的优点 执行效率极高,因为子程序切换(函数)不是线程切换,由程序自身控制。 没有切换线程的开销,所以与多线程相比,线程的数量越多,协程性能的优势越明显。 不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在控制共享资源时也不需要加锁,因此执行效率高很多。
点赞 回复 分享
发布于 2019-08-20 19:28
一个由用户自由切换上下文的线程,相较于系统切换更为轻量,从而使当前线程最大可能地处于就绪态,但仍然无法利用多核资源。Python3.7新增asyncio模块,配合异步食用,效果更佳。
点赞 回复 分享
发布于 2019-08-20 18:07
协程是轻量级的线程,由应用程序所控制,而不受操作系统内核管理,效率高,不需要锁,常用yield和send来实现。
点赞 回复 分享
发布于 2019-08-20 17:55

相关推荐

不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务