协程 greenlet ,gevent monkey
并发,异步 ,的先天条件 决定是非阻塞。本质 是 单线程执行。又叫微线程 比 线程 更小的执行 实体单位。
高性能解决方案 ,多进程 里 嵌套 协程,可以 利用 多核 并行资源。
最大的优势 是协程极高的执行效率,因为子程序切换不是线程切换,而是由程序自身控制,因此没有线程切换的开销,和多线程对比性,多线程 数量 越多,性能优势 就越明显。
第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。
因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。
理解些协程 。swicth 假设 阻塞 ,阻塞的 时候 跳过 ,继续 执行其他。
底层实现 使用 yield 关键字,通过 yield 可以模拟协程的 过程常见模块
sudo pip3 install greenlet
sudo pip3 install gevent