多进程 多进程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对象在等待就阻塞线程 ...
随机推荐
- Java:面向对象的编程语言
java是面向对象的编程语言 Object,就是指面向对象的对象,对象就是实例. 在java里,对象是类的一个具体实例.就像:人,指一个类.你.我.他.张三.李四.王五等则是一个个具体的实例,也就是j ...
- sublime添加自己的编译环境_添加一个.app或者.exe文件执行脚本
如何添加一个.app或者.exe文件执行脚本 看了很多简书和博客,还是搞不好,最后参考官方文档搞定了: http://www.sublimetext.com/docs/3/build_systems. ...
- zabbix4.2安装配置指南
[声名]本实例中采用Linux CentOS 7系统 CentOS Linux release 7.6.1810 (Core) 1.安装LAMP环境: [root@localhost /]# yum ...
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(01)
最近因为肺炎的缘故,宅在家里不能出门,就翻了下一些资料,刚好研究方向是这个,就简单研究了下.参考资料主要如下: 1.<半导体工艺和器件仿真软件Silvaco TCAD实用教程> 唐龙谷 2 ...
- python记之Hello world!
________________________________该动手实践了. 数和表达式 交互式Python解释器可用作功能强大的计算器. 除法运算的结果为小数,即浮点数(float或floatin ...
- @RequestMapping(value = {"list", ""})
https://www.cnblogs.com/tongs/p/7486478.html @RequestMapping是请求路径的注解 里面写两个value就是,路径可以是这两个, 第二个空,是 ...
- 使用vs进行Nuget打包时的LicenseExpression填写示例参考
新版的nuget包 PackageLicense 这样写 最近编译类库项目的时候发现总是有个 licenseUrl 的警告,警告信息如下: warning NU5125: The 'licenseUr ...
- js无法监听input中js改变值的变化
$(input).on('change',function(){ }) 当使用$(input).val('...');不会触发它的change事件 解决办法一:在改变它的值后,手动触发input的ch ...
- ACM-ICPC实验室20.2.22测试-动态规划
C.田忌赛马 直接贪心做就可以~ #include<bits/stdc++.h> using namespace std; ; int a[maxn],b[maxn]; int main( ...
- 每天进步一点点------Altium Designer Rules规则详解
对于PCB的设计, AD提供了详尽的10种不同的设计规则,这些设计规则则包括导线放置.导线布线方法.元件放置.布线规则.元件移动和信号完整性等规则.根据这些规则, Protel DXP进行自动布局和自 ...