多个进程间通信之Queue
2024-10-21 13:24:59
多个进程间通信之Queue
实现数据传递
#!coding:utf-8
from multiprocessing import Process, Queue
import os,time,random
#写数据进程执行的代码
def proc_write(q,urls):
print 'Process is write....'
for url in urls:
q.put(url)
print 'put %s to queue... ' %url
time.sleep(random.random())
#读数据进程的代码
def proc_read(q):
print('Process is reading...')
while True:
url = q.get(True)
print('Get %s from queue' %url)
if __name__ == '__main__':
#父进程创建Queue,并传给各个子进程
q = Queue()
proc_write1 = Process(target=proc_write,args=(q,['url_1','url_2','url_3']))
proc_write2 = Process(target=proc_write,args=(q,['url_4','url_5','url_6']))
proc_reader = Process(target=proc_read,args=(q,))
#启动子进程,写入
proc_write1.start()
proc_write2.start()
proc_reader.start()
#等待proc_write1结束
proc_write1.join()
proc_write2.join()
#proc_raader进程是死循环,强制结束
proc_reader.terminate()
https://www.cnblogs.com/guguobao/p/9398653.html
内置模块queue
import queue
线程安全的队列,适用于多线程编程的先进先出的数据结构
- 队列 FIFO Queue
- 栈 LIFO LifoQueue
- 优先级队列 PriorityQueue
https://www.jianshu.com/p/3e422a96b008
最新文章
- FreeBSD从零开始---安装后配置(一)
- 原生JS实现分页效果1.0
- 利用Microsoft.Office.Interop.Excel 将web页面转成PDF
- javascript保留关键字
- .NET学习记录3
- 10688 XYM-AC之路
- <;mvc:annotation-driven />;
- 开源app之MyHearts
- 【jpa】 引用包的问题
- jQuery移除指定元素后的所有元素
- JavaScript中style.left与offsetLeft的区别
- sql server 2008 (1)(2)
- Reactive ExtensionsLINQ和Rx简单介绍
- KICKSTART无人值守安装
- python学习总结笔记(一)
- 【PowerOJ1738】最小路径覆盖
- Git常用命令(一)
- 为什么在球坐标系中,sinTheta2=std::max(T(0), 1 - cosTheta(w) * cosTheta(w));
- HTML入门随笔
- [转]权限系统与RBAC模型概述[绝对经典]
热门文章
- robot framework 笔记(三),RF安装
- spring jar包的作用
- “Another git process seems to be running in this repository...”Git此问题解决
- 1、HDFS 架构、启动过程
- (4)ardunio 矩阵求解官方库改造,添加逆的求解
- TED演讲:真正拉开你与周围人之间差距的,是自学能力https://www.bilibili.com/video/av65904878/?spm_id_from=333.788.videocard.1
- A Class of Blind Source Extraction Method Using Second-Order Statistics
- LeetCode 1079. Letter Tile Possibilities
- 干货 | 10分钟带你全面掌握branch and bound(分支定界)算法-概念篇
- Doors Breaking and Repairing