天天看点

python协程,asyncIO

协程,又称微线程,纤程。英文名 coroutine。

协程的特点在于是一个线程执行,那和多线程比,协程有何优势?

最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。

第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

传统的生产者-消费者模型是一个线程写消息,一个线程取消息,通过

锁机制控制队列和等待,但一不小心就可能死锁。

如果改用协程,生产者生产消息后,直接通过 yield 跳转到消费者开始

执行,待消费者执行完毕后,切换回生产者继续生产,效率极高

python协程,asyncIO
python协程,asyncIO
python协程,asyncIO