python 多进程之管道实例(模板)
2013-11-22 14:18
495 查看
原文地址:http://blog.chinaunix.net/uid-20393955-id-3084628.html
#!/usr/bin/env python # -*- coding: utf-8 -*- import multiprocessing # 管道消费者. def consumer(lock,pipe): output_p, input_p = pipe input_p.close() # 关闭管道输入口 while True: lock.acquire() item = output_p.recv() lock.release() if item == None: break # 处理部分 lock.acquire() print(item) lock.release() # 管道生产者 def producer(sequence, input_p): for item in sequence: # Put the item on the queue input_p.send(item) if __name__ == '__main__': # 进程数、创建管道,锁等 p_num = 2 process = [] (output_p, input_p) = multiprocessing.Pipe() lock = multiprocessing.Lock() # 定义消费进程 for i in range(p_num): t =multiprocessing.Process(target=consumer,args=(lock,(output_p, input_p),)) t.daemon=True process.append(t) # 启动消费进程 for i in range(p_num): process[i].start() # 关闭输出管道,以往管道填充数据 output_p.close() sequence = range(100) + [None]*p_num producer(sequence, input_p) # 数据填充完毕,打开输入管道 input_p.close() # 等待结束 for i in range(p_num): process[i].join()
相关文章推荐
- python 多进程之管道实例(模板)
- Python进程通信之匿名管道实例讲解
- Python获取shell管道数据/输入的2种方法: subprocess子进程 和 sys.stdin
- Python 多进程实例
- python实现的守护进程(Daemon)用法实例
- Python 多进程实例
- 13-(1-4)进程管道关于popen(-r-w)及pipe的程序使用实例
- django自定义模板过滤器时间戳实例(python)
- python学习笔记——multiprocessing 多进程组件 Pipe管道
- Python并发之多进程的方法实例代码
- python修改注册表终止360进程实例
- Python基于回溯法子集树模板解决取物搭配问题实例
- Python多进程编程技术实例分析
- 无名管道的亲缘关系进程的通信实例
- Python多进程并发(multiprocessing)用法实例详解
- Python守护进程(daemon)代码实例
- python修改注册表终止360进程实例
- python类库[进程subprocess与管道pipe]
- Python实例浅谈之五Python守护进程和脚本单例运行
- Python 多进程并发操作中进程池Pool的实例