多进程

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的更多相关文章

  1. python类库32[多进程通信Queue+Pipe+Value+Array]

    多进程通信 queue和pipe的区别: pipe用来在两个进程间通信.queue用来在多个进程间实现通信. 此两种方法为所有系统多进程通信的基本方法,几乎所有的语言都支持此两种方法. 1)Queue ...

  2. python 多进程使用Queue通信的例子

    import time from multiprocessing import Process,Queue MSG_QUEUE = Queue(5) def startA(msgQueue): whi ...

  3. Python的多线程(threading)与多进程(multiprocessing )

    进程:程序的一次执行(程序载入内存,系统分配资源运行).每个进程有自己的内存空间,数据栈等,进程之间可以进行通讯,但是不能共享信息. 线程:所有的线程运行在同一个进程中,共享相同的运行环境.每个独立的 ...

  4. Python多进程使用

    [Python之旅]第六篇(六):Python多进程使用   香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要:   关于进程与线程的对比, ...

  5. Python多进程multiprocessing使用示例

    mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multipr ...

  6. python Event对象、队列和多进程基础

    Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...

  7. py基础---多线程、多进程、协程

    目录 Python基础__线程.进程.协程 1.什么是线程(thread)? 2.什么是进程(process)? 3.进程和线程的区别 4.GIL全局解释器锁 5.多线程(threading模块) 6 ...

  8. Python开发基础-Day31 Event对象、队列和多进程基础

    Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...

  9. python基础之Event对象、队列和多进程基础

    Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...

随机推荐

  1. 「题解」「CF850A」Five Dimensional Points

    题目 点这里 题解 本题暴力可过,细节不必多说. 这里我主要是说明一下为什么当 \(n>11\) 时可以直接输出 \(0\) . 首先,思考二维空间中,我们能保证最多能同时存在多少点,而还有好点 ...

  2. Flink流处理(二)- 流处理基本概念

    1. Dataflow Programming 在讨论流处理的基本概念之前,我们首先介绍一下数据流编程(dataflow programming)的基本概念与术语. 数据流图 数据流程序一般在由数据流 ...

  3. 题解 【Codeforces381A】 Sereja and Dima

    本题是很好的双指针练习题. 关于双指针,详见洛谷日报#73. 我们可以用两个指针l和r表示题中两人接下来要比较的数字,用fl标记下一个将要取的人,并分别用两个计数器统计双方的答案. 因此,我们有了如下 ...

  4. 【资源分享】Garry's mod 自制整合包

    *----------------------------------------------[下载区]----------------------------------------------* ...

  5. js对象的深拷贝及其的几种方法

    深拷贝和浅拷贝是javascript中一个比较复杂的问题,也是面试官最喜欢问的问题之一,通过这个为可以看出是否入门,深拷贝和浅拷贝也是初学者经常犯错一个点. 简单来说深拷贝是拷贝储存在栈中的对象,而浅 ...

  6. ansible笔记(8):初识ansible playbook

    回顾总结:我们来想象一个工作场景,看看怎样把之前的知识点应用到这个工作场景中.假设,我们想要在192.168.10.2主机上安装nginx并启动,我们可以在ansible控制主机中执行如下3条命令. ...

  7. analog filter

    理想的filter如下: 但是实际的filter如下: 在实际应用中,我们更多的是用Fo和Q这两个parameter来design analog filter. Low-Pass Filter tra ...

  8. android .9背景图作为TextView背景时文字无法居中问题

    问题产生原因: .9图黑色边框绘制伸缩区域有问题,重叠的最大区域是TextView文字所能显示的区域 如下图所示,横向和纵向最大重叠部分就是文字可显示部分,这个图作为背景后文字整体偏下,无法上下居中对 ...

  9. 对C#单例模式的理解

    2018年11月6日       小雨 一.单例模式的定义 确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一的实例,是一种对象创建型模式,有如下3个要点: 只能有一个实例 必须是自行创建这个 ...

  10. 联想ideapad关闭Fn

    1.打开bios 开启/重启电脑的时候长按Fn+F2,就可以打开bios面板 2.切换到configuration菜单 使用键盘的右箭头将切换到configuration 3.关闭Fn 使用键盘下箭头 ...