多进程 多进程queue
多进程
import multiprocessing
import threading
import time def thread_run():
print(threading.get_ident()) def run(name):
time.sleep(2)
print('hello', name)
t = threading.Thread(target=thread_run(),)#启动一个线程
t.start() if __name__ == '__main__':
for i in range(10):
p = multiprocessing.Process(target=run, args=('bob %s'%i,))#启动10个进程
p.start()
#p.join()
多进程queue
之前学习过一个queue,线程queue,为了在线程之间实现数据共享,但是出了线程,在进程之间数据就不能通过这个queue传递
现在了解一下多进程queue
import multiprocessing def func(q):
q.put([42,None,"hello"])#子进程在进程queue放了数据 if __name__ == '__main__':
q = multiprocessing.Queue()#生成一个进程queue,q
p = multiprocessing.Process(target=func,args=(q,))#创建一个进程p,把进程queue作为参数传递给进程p
p.start()#启动进程
print(q.get())#在父进程中显示子进程的数据
另一进程间数据传递的例子
import multiprocessing def func(q):
q.put([42,None,"hello"])#子进程p1在进程queue放了第一组数据
q.put([43,None,"hello"])#子进程p1在进程queue放了第二组数据 def func2(q):
print(q.get())#取出q中的数据 if __name__ == '__main__':
q = multiprocessing.Queue()#生成一个进程queue,q
p1 = multiprocessing.Process(target=func,args=(q,))#创建一个进程p1,执行func函数,并把进程queue作为参数传递给进程p
p2 = multiprocessing.Process(target=func2,args=(q,))#创建一个进程p2,执行func2函数,并把进程queue作为参数传递给进程p
p1.start()#启动进程p1
p2.start()#启动进程p2
print('--->',q.get())#在父进程中显示子进程的数据
例子中主进程和p2子进程都可以从q中获得,p1子进程存入的数据
D:\7_Python\Python37\python.exe D:/7_Python/S14/其他/aaaa.py
---> [42, None, 'hello']
[43, None, 'hello']
多进程 多进程queue的更多相关文章
- python类库32[多进程通信Queue+Pipe+Value+Array]
多进程通信 queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue ...
- python 多进程使用Queue通信的例子
import time from multiprocessing import Process,Queue MSG_QUEUE = Queue(5) def startA(msgQueue): whi ...
- Python的多线程(threading)与多进程(multiprocessing )
进程:程序的一次执行(程序载入内存,系统分配资源运行).每个进程有自己的内存空间,数据栈等,进程之间可以进行通讯,但是不能共享信息. 线程:所有的线程运行在同一个进程中,共享相同的运行环境.每个独立的 ...
- Python多进程使用
[Python之旅]第六篇(六):Python多进程使用 香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要: 关于进程与线程的对比, ...
- Python多进程multiprocessing使用示例
mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multipr ...
- python Event对象、队列和多进程基础
Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...
- py基础---多线程、多进程、协程
目录 Python基础__线程.进程.协程 1.什么是线程(thread)? 2.什么是进程(process)? 3.进程和线程的区别 4.GIL全局解释器锁 5.多线程(threading模块) 6 ...
- Python开发基础-Day31 Event对象、队列和多进程基础
Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...
- python基础之Event对象、队列和多进程基础
Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...
随机推荐
- 数据结构学习笔记 <1> 线性表
一.线性表的抽象数据类型描述 类型名:线性表(List) 数据对象集:线性表示n(>=0)个元素构成的有序序列(a1,a2,……,an) 操作集:线性表L∈List, 整数i表示位置,元素X∈ ...
- 页面中<link>和<script>标签
在html中,经常肯定会有js,css的引入 <head> <title>MyHtml</title> <link rel="stylesheet& ...
- HTML学习(4)属性
属性是HTML元素提供的附加信息,大多数标签都能设置属性,一般位于开始标签,以名称/值的方式出现,例:name="value". 值要放在引号内(单引号.双引号都可以),如果值包含 ...
- 爬虫入门 requests库
写在最前的具体资料: https://2.python-requests.org//zh_CN/latest/user/quickstart.html https://www.liaoxuefeng. ...
- n阶高精度乘法,(求高阶阶乘)
先来复习一下小学数学 : 大家还记不记得小学算多位数的乘法是怎么算的? 卖个关子,大家一定要好好想想! 好了,别管到底还能不能想起来我们都要一块复习一下: 我们借助一下源自百度的图片 来复习下 相信大 ...
- Python求1000以内所有3或5的倍数的和。
a=0 for n in range(1,1000): if n%3==0 or n%5==0: a=a+n print(a) 运行结果: 233168
- JQuery/JS插件 jsTree加载树,预先加载,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点
jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head&g ...
- Python - CentOS 下用 yum 安装 pip
1. 概述 python 安装完成 发现后续需要一个 python 自己的 包管理工具 书上说默认会装, 然后我发现还是没有 命令执行的结果我就不给了, 这个判断起来, 应该是没有太大难度的 2. 环 ...
- java双亲委派模型
Java类加载器(ClassLoader) 双亲委派模式要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器,请注意双亲委派模式中的父子关系并非通常所说的类继承关系,而是采用组合关系来 ...
- 浅谈分治 —— 洛谷P1228 地毯填补问题 题解
如果想看原题网址的话请点击这里:地毯填补问题 原题: 题目描述 相传在一个古老的阿拉伯国家里,有一座宫殿.宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子 ...