此Queue非彼Queue,stdlib中的queue模块,是提供给多线程环境使用的。multiprocess.Queue,是提供个python多进程见通信使用的。

python有一个好的设计,即多线程和多进程的接口基本相同,现在这两个Queue的使用接口也基本相同!

from multiprocessing import Process, Queue

def f(q):

q.put([42, None, 'hello'])

if __name__ == '__main__':

q = Queue()

p = Process(target=f, args=(q,))

p.start()

print(q.get()) # prints "[42, None, 'hello']"

p.join()

这个python官方的示例有点太简单了,我弄了一个复杂点的,就想说明一个细节:multiprocessing.Queue可用于多个进程间的通信。

from multiprocessing import Process, Queue

def f(q):

q.put([42, None, 'hello'])

def g(q):

q.put([48, None, 'hello gggg'])

def h(q):

print(q.get())

print(q.get())

if __name__ == '__main__':

q = Queue()

p1 = Process(target=f, args=(q,))

p2 = Process(target=g, args=(q,))

p3 = Process(target=h, args=(q,))

p1.start()

p2.start()

p3.start()

p1.join()

p2.join()

p3.join()

主进程开了3个子进程,两个做put,一个做get,运行良好。

-- EOF --

python进程间通信 listener_python进程间通信之Queue相关推荐

  1. Python中的进程间通信

    Python中的进程间通信 文章目录 Python中的进程间通信 1 进程间通信 1.1 概念 1.2进程间通信方法 各种进程间通信 1. 基于信号量(Semaphore)的IPC 2 基于信号(Si ...

  2. Python多线程(3)——Queue模块

    Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...

  3. 进程间通信: 进程间通信都有哪些方法?

    在上一讲中,我们提到过,凡是面试官问"什么情况下"的时候,面试官实际想听的是你经过理解,整理得到的认知.回答应该是概括的.简要的.而不是真的去列举每一种 case. 另外,面试官考 ...

  4. python程序间通信_python进程间通信Queue工作过程详解

    Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信. 1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个 ...

  5. Python开发基础--- 进程间通信、进程池、协程

    进程间通信 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的. 进程队列queue 不同于线程queue,进程 ...

  6. Python实现多进程间通信的方法总结

    0 引言 众所周知,python因为GIL的存在,其多线程只能在一个CPU中调度,对于计算密集型任务完全不能充分利用多核资源,所以需要Python多进程编程.多进程程序最大的性能瓶颈往往出在进程间通信 ...

  7. python之父子进程间通信

    当进行fork的时候,父父进程的信息会复制到子进程,这本身已经是一种通信方式了,即子进程复制父进程资源,除此之外,还想让这两个进程进行通信,有什么方法呢?可以使用socketpair的方式. 我的疑惑 ...

  8. python程序间通信,python 实现 socket 进程间通信

    client.py # coding:utf-8 import socket import threading outString = '' inString = '' nick = '' # 发送 ...

  9. python中几种队列Queue用法区别

    python中使用到的队列模块大致有三个: 1.from queue import Queue 此模块适用于线程间通信,但不能用于进程间通信. 示例代码1:   [注意:此时代码存在错误!!!] im ...

最新文章

  1. numpy中的tile函数
  2. ProtoBuf使用指南(C++)
  3. python 魔法参数*argv 和 **kw
  4. S2SH框架入门之使用hibernate进行基础的增删改查
  5. webBroser获取cookie
  6. kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中
  7. java 8 optional 类,Java8新特性-Optional类
  8. Linux系统管理01--系统命令精讲
  9. [导入]用Windows自带的媒体播放器抓视频截图
  10. 网络基础知识之报文格式介绍
  11. 利用adobe x pro批量合并pdf
  12. CANoe测试:CAPL Test Module的2种创建方式
  13. android A~Z通讯录排序索引
  14. Dremel学习总结2
  15. 超链接的5种表现形式(用法)
  16. crontab shell 每5秒执行_shell之定时周期性执行脚本-crontab
  17. 【NLP】深度文本匹配综述
  18. MongoDB 拆联查询
  19. 店铺流量提升及推广方法
  20. 新松机器人刻蚀机_新松机器人再融资30亿元 打造百亿级智能制造帝国

热门文章

  1. Kmeans算法的过程是什么?Kmeans算法的缺陷主要有哪些?
  2. 贝叶斯岭回归(BayesianRidge)、自动关联决策回归、高斯过程、核函数、及高斯回归、高斯过程分类
  3. 测试开发工程师技能图谱
  4. 三十七、页面置换算法
  5. 【JVM】Java变量的种类(提高版)
  6. 多标签图像分类--HCP: A Flexible CNN Framework for Multi-Label Image Classification
  7. 目标检测--Object Detection via Aspect Ratio and Context Aware
  8. LeetCode 542. 01 Matrix--C++解法--动态规划
  9. python 除法取模_Python的运算符和表达式(上)
  10. Spring-Boot的动态代理AOP原理