python-协程一(常识)

问题1:什么叫协程?

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

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

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

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

问题3:协程的优点

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

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

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

问题4:协程的缺点

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

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

猜你喜欢

转载自www.cnblogs.com/su-sir/p/12590029.html