外观
介绍
在同一线程内,一段执行代码过程中,可以中断并跳转到另一段代码中,接着之前中断的地方继续执行。
协程运行状态于多线程类似。
协程优点:
- 无需线程上下文切换,协程避免了无意义的调度,可以提高性能。
- 无需原子操作锁定及同步开销。
- 方便切换控制流,简化编程模型
- 高并发 + 高扩展性 + 低成本,一个CPU支持上万的协程不是问题,很适合用于高并发处理。
协程缺点:
- 无法利用多核资源。协程的本质是单线程,不能同时将单个CPU的多个核用上,协程需要进程配合才能运行在多CPU上。(不过我们日常编程不会有这个问题,除非是CPU密集型应用)
- 进行阻塞操作(如IO时)会阻塞掉整个程序