协程:
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()
时间: 2024-10-12 06:28:54