码迷,mamicode.com
首页 > 编程语言 > 详细

Python求索之路9——IO&队列&缓存

时间:2016-03-31 16:39:24      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

协程:

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&队列&缓存

标签:

原文地址:http://www.cnblogs.com/ahaii/p/5341289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!