首页 > 编程语言 > 详细

python-协程一(常识)

时间:2020-03-29 00:28:10      阅读:61      评论:0      收藏:0      [点我收藏+]

问题1:什么叫协程?

  协程(Coroutine)是线程的更小切分,又称为“微线程”,是一种用户态的轻量级线程。线程是系统级别的它们由操作系统调度;协程则是程序级别的由程序员根据需要自己调度。

 

问题2:协程与线程的区别?

  1)线程之间需要上下文切换成本相对协程来说是比较高的,尤其在开启线程较多时,但协程的切换成本非常低。

  2)同样的线程的切换更多的是靠操作系统来控制,而协程的执行由我们自己控制。

 

问题3:协程的优点

  1)无需线程上下文切换的开销,协程避免了无意义的调度,由此可以提高性能。

  2)无需原子操作锁定及同步的开销

  3)方便切换控制流,简化编程模型,高并发+高扩展性+低成本

 

问题4:协程的缺点

  1)无法利用多核资源:协程的本质是个单线程,它不能同时将单个CPU 的多个核用上,协程需要和进程配合才能运行在多CPU上,当然我们日常所编写的绝大部分应用都没有这个必要,除非是cpu密集型应用。

  2)进行阻塞(Blocking)操作(如IO时)会阻塞掉整个程序

python-协程一(常识)

原文:https://www.cnblogs.com/su-sir/p/12590029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!