码迷,mamicode.com
首页 > 编程语言 > 详细

python-协程一(常识)

时间:2020-03-28 23:15:31      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:用户   编程模型   开启   锁定   block   style   需要   多个   根据   

问题1:什么叫协程?

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

 

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

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

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

 

问题3:协程的优点

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

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

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

 

问题4:协程的缺点

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

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

python-协程一(常识)

标签:用户   编程模型   开启   锁定   block   style   需要   多个   根据   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!