两个进程间的数据是独立的,要进行数据传递的话可通过几个方法

Queue

通过队列来进行进程间数据的传递

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from multiprocessing import Process, Queue def Child_Process(n):
n.put("Data From Child Process") if __name__ == '__main__':
q = Queue()
p = Process(target=Child_Process, args=(q,))
p.start()
print(q.get())
p.join()

运行结果

父进程中声明了一个queue,也生成了一个子进程,然后父进程把queue克隆一份,然后通过pickle序列化queue,再把queue进行pickle反序列化传入子进程

两个进程之间通过进程queue进行数据传递需要经过pickle的序列化和反序列化

Pipe

通过管道来进行进程间数据的传递

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" from multiprocessing import Process, Pipe def f(conn):
conn.send("Data_1 from Conn_1")
conn.send("Data_2 from Conn_1")
print("Conn_1: ",conn.recv())
conn.close() if __name__ == '__main__':
conn_1, conn_2 = Pipe() #生成管道的两边,分别传给两个进程
p = Process(target=f, args=(conn_1,))
p.start()
print("Conn_2: ",conn_2.recv())
print("Conn_2: ",conn_2.recv())
conn_2.send("Data_1 from Conn_2")
p.join()

运行结果

上面是两边的管道收发数据的次数一样,如果把conn_2给conn_1发送数据的那一行代码去掉

脚本就会在conn_1接收数据处一直等着

Python多进程-进程间数据的传递的更多相关文章

  1. Python多进程-进程间数据的共享

    不同的进程不能同时修改一份数据,但是不同的进程能对一份数据进行修改 可通过Manager来实现进程间的数据共享 # -*- coding:utf-8 -*- __author__ = "Mu ...

  2. Python进阶----进程间数据隔离, join阻塞等待, 进程属性, 僵尸进程和孤儿进程, 守护进程

    Python进阶----进程间数据隔离, join阻塞等待, 进程属性, 僵尸进程和孤儿进程, 守护进程 一丶获取进程以及父进程的pid 含义:    进程在内存中开启多个,操作系统如何区分这些进程, ...

  3. 【python】-- 多进程的基本语法 、进程间数据交互与共享、进程锁和进程池的使用

    多进程 进程之间是相互独立的,python是启动进程的时候,是启动的是原生进程.进程是没有GIL锁的,而且不存在锁的概念,进程之间的数据式不能共享的,而线程是可以的. 1.进程的定义 用mulipro ...

  4. Python 进程间数据交互

    进程间通信:进程之间必须需要中间件. 不同进程间内存是不共享的,要想实现两个进程间的数据交换     Queues:实现传输两个进程的数据 线程queue,访问数据只能在一个进程内进行线程与线程之间的 ...

  5. 进程间数据传递:Queue,Pipe 进程间数据共享:Manager

    1.使用multiprocessing模块的Queue实现数据传递 ''' 进程间通讯: Queue,用法跟线程里的Queue一样,put,get 线程queue没有做序列化,进程queue做序列化了 ...

  6. 鸿蒙内核源码分析(消息队列篇) | 进程间如何异步传递大数据 | 百篇博客分析OpenHarmony源码 | v33.02

    百篇博客系列篇.本篇为: v33.xx 鸿蒙内核源码分析(消息队列篇) | 进程间如何异步传递大数据 | 51.c.h .o 进程通讯相关篇为: v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁 ...

  7. day12学python 多进程+进程池

    多进程+进程池 多进程(不同进程不可直接访问数据) 引入(多进程套线程) 多进程 需导入multiprocessing模块 模板示例1 import threading,time,multiproce ...

  8. python开发进程:共享数据&进程池

    一,共享数据 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据.这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展 ...

  9. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

随机推荐

  1. mysql基础(1)-基本操作

    数据库 数据库(Database,DB)是数据的集合,是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合. 存储数据 管理数据 数据库类型 关系型数据库:由二维表及其之间的联系组成的一 ...

  2. IOS 发布被拒 3.2 f

    Dear Developer, We have determined that your Apple Developer Program membership, or another membersh ...

  3. 获取本机MSSQL保存凭证

    首先要感谢哥们对我的指点,多谢. 当我们遇到类似情况下,如何获取保存在MSSQL工具里的凭证呢?  //如果对方连接地址后面加了IP\sqlexpress 连接的时候你也记得加上,不然即使密码正确,也 ...

  4. 【转】java中静态方法和非静态方法的存储

    将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们 ...

  5. Python快速学习-高级特性

    1.切片 取一个list或tuple的部分元素是非常常见的操作 L = ['hello','the','world','and','my','love'] 取前三个元素 L[0:3],L[:3] 取倒 ...

  6. shitf+tab

    在eclipse中,shitf+tab可以使代码向左移动.

  7. 查看后台PHP进程(非PHP-FPM)

    ps -ef | grep php | grep -v php-fpm

  8. 我总结的js变量、数组、对象等基础知识

    我的第一篇博客 ——JS的那些基础概念 第一次写,也不知道有没有什么套路,需不需要注意文采之类的.不管了,我就直接写主要内容吧!下面是我总结的一些关于JS的基础概念: [变量]从字面上面,变量是可变的 ...

  9. 测试通过!为何线上还有很多BUG?

    质量控制 大多数测试人员认为测试工作是发现bug,虽然这是测试的主要任务,但其实测试最重要的任务是质量控制,而发现bug和验证bug只是质量控制的一个重要环节而已. 我想很多测试人员都经历过这样的场景 ...

  10. python 换行

    python3 end = “”:输入参数不换行. 就是打印之后不换行. python字符串换行: (1)三个单引号,例如print '''我是程序员 刚学习python''' (2)三个双引号,例如 ...