协程(Coroutine), 又称纤程.
函数/子程序: 在程序中是层级调用的, 例如函数A调用函数B, 函数B再调用函数C. C执行完毕后返回到B, B执行完毕后返回到A, 最后A执行完毕. 子程序的调用时通过栈实现的.
一个线程就是一个子程序
子程序总是一个入口, 一个出口, 调用顺序是明确的
协程: 协程的运行与子进程相似, 但执行过程中, 在子程序的内部可中断, 转而去执行别的子程序, 在适当的时候再回来继续执行.
多个子程序都是在一个线程中执行
与多线程相比, 优势在于:
极高的执行效率: 子程序的执行不是线程切换, 由程序自身控制, 没有线程切换的开销. 和多线程比, 线程数量越多, 写成的优势越明显
不需要多线程的锁机制, 因为只有一个线程, 不存在同时写变量的冲突. 因此, 在写成中的共享资源不用加锁, 执行效率又进一步提高
写成是在一个线程中执行, 为了利用多核CPU, 可以采用多进程+协程的方法, 获得高性能
最后更新于