Python求索之路9——IO&队列&缓存
Posted ahaii
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python求索之路9——IO&队列&缓存相关的知识,希望对你有一定的参考价值。
协程:
1、单线程运行,无法实现多线程。
2、修改数据时不需要加锁(单线程运行),子程序切换是线程内部的切换,耗时少。
3、一个cpu可支持上万协程,适合高并发处理。
4、无法利用多核资源,因为协程只有一个线程。
使用yield实现协程:
import time import Queue def consumer(name): print("--->starting eating baozi...") while True: new_baozi = yield print("[%s] is eating baozi %s" % (name,new_baozi)) #time.sleep(1) def producer(): r = con.next()#拥有yield的函数是迭代起,使用next()方法取值。 r = con2.next() n = 0 while n < 5: n +=1 con.send(n) con2.send(n) print("\033[32;1m[producer]\033[0m is making baozi %s" %n ) if __name__ == ‘__main__‘: con = consumer("c1") con2 = consumer("c2") p = producer()
以上是关于Python求索之路9——IO&队列&缓存的主要内容,如果未能解决你的问题,请参考以下文章
Python之路第一课Day10--随堂笔记(异步IO数据库队列缓存之二)