python 异步 生产者 消费者_Python Threading Queue 生产者消费者异步传输数据

# -*- code:utf8 -*-

import threading

import Queue

class Producer(threading.Thread):

def __init__(self, in_queue, out_queue):

threading.Thread.__init__(self)

self.in_queue = in_queue

self.out_queue = out_queue

def run(self):

while True:

item = self.in_queue.get()

result = item

self.out_queue.put(result)

print 'out_queue put',result

self.in_queue.task_done()

class Consumer(threading.Thread):

def __init__(self, out_queue):

threading.Thread.__init__(self)

self.out_queue = out_queue

def run(self):

while True:

item = self.out_queue.get()

result = item

self.out_queue.task_done()

if __name__ == '__main__':

item_list = ['item1', 'item2', 'item3']

in_queue = Queue.Queue()

out_queue = Queue.Queue()

for item in item_list:

in_queue.put(item)

for i in xrange(len(item_list)):

t = Producer(in_queue, out_queue)

t.daemon = True

t.start()

for i in xrange(len(item_list)):

t = Consumer(out_queue)

t.daemon = True

t.start()

in_queue.join()

out_queue.join()

参考网址:

http://www.nryoung.org/blog/2013/2/28/python-threading/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值