一  使用queue来实现进程间的内存共享

#_*_coding:utf-8_*_
from multiprocessing import Process,Queue
import os,time
def f(q,n):
q.put([n,'hello'])
if __name__ == '__main__':
#此queue不是直接导入的import Queue,这个是multiprocessing重新封装的
q=Queue()
#循环6个进程
for i in range():
p=Process(target=f,args=(q,i))
p.start()
#等待子进程完毕后在继续执行
p.join()
for i in range(q.qsize()):
print q.get()

显示效果如下:

[0, 'hello', {'aa': 'bb'}]
[1, 'hello', {'aa': 'bb'}]
[2, 'hello', {'aa': 'bb'}]
[3, 'hello', {'aa': 'bb'}]
[4, 'hello', {'aa': 'bb'}]

在队列中可以存储列表,字典等类型,还是很方便的。但是python间进程间共享内存  并不是真正意义的而是需要利用第三方来实现queue就是

二进程锁LOCK

#_*_coding:utf-8_*_
from multiprocessing import Process,Lock
import os,time
def f(l,i):
#加锁
l.acquire()
print 'hello',i
#释放锁
l.release()
if __name__ == '__main__':
lock=Lock()
for i in range(5):
p=Process(target=f,args=(lock,i)).start()

显示效果:

hello 0
hello 1
hello 2
hello 3
hello 4

这个lock是完全复刻的线程锁 ,没有什么改动。进程间本身内存就是独立的,没有什么征用资源的问题,所以这个把锁用处不大,但是有的时候可能需要,比如当终端显示的时候,多个进程都用的同一个终端显示。

看看父进程和子进程关系

python 进程间通信(上)的更多相关文章

  1. Python进程间通信:Queue

    Python进程间通信Queue 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量: Queue.empty():如果队列为空,返回True,反之False : Que ...

  2. Python进程间通信和网络基础

    Python进程间通信和网络基础 Python支持多种进程间通讯的方式, 有单机通信的signal和mmap等, 也有可以通过网络的socket方式, 这里先介绍select等的有关知识, socke ...

  3. python进程间通信--信号Signal

    信号signal 是python进程间通信多种机制中的其中一种机制.可以对操作系统进程的控制,当进程中发生某种原因而中断时,可以异步处理这个异常. 信号通过注册的方式‘挂’在一个进程中,并且不会阻塞该 ...

  4. python进程间通信 queue pipe

    python进程间通信 1 python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe是两个进程的通信 1.1 Queue有两个方法: Put ...

  5. Python入门(上)

    Python入门(上) Python入门(上) 简介 Python 基础语法 行与缩进 注释 运算符 标准数据类型 变量 编程流程 顺序(略) 分支 if 循环 for while break 和 c ...

  6. Python进程间通信之共享内存

    前一篇博客说了怎样通过命名管道实现进程间通信,但是要在windows是使用命名管道,需要使用python调研windows api,太麻烦,于是想到是不是可以通过共享内存的方式来实现.查了一下,Pyt ...

  7. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

  8. python FTP上传和下载文件

    1. 连接FTP server import ftplib ftp = ftplib.FTP(ftpserver, user, passwd) 等同于 import ftplib ftp = ftpl ...

  9. Python判断上传文件类型

    在开发上传服务时,经常需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,非常实用. 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

随机推荐

  1. 越光后端开发——ygapi(1.新建项目ygapi、新建MySQL数据库yg、项目连接数据库)

    1.新建MySQL数据库 show databases;//查看已经有的数据库 create database yg; 2.新建项目ygapi 1.使用pycharm新建django项目取名ygapi ...

  2. 转载:ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案

    ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案   简单描述一下场景,总共两台应用服务器,每台安装3个tomcat进行集群,并通过nginx做了负载均衡,今天在生 ...

  3. JS学习笔记Day14

    一.正则表达式 (一)正则的概念 1.正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符 (二)创建正则的方式 1.字面量的 ...

  4. Linux中的pipe(管道)与named pipe(FIFO 命名管道)

    catalogue . pipe匿名管道 . named pipe(FIFO)有名管道 1. pipe匿名管道 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常 ...

  5. Hadoop记录-metastore jmx配置

    参考:http://www.lixiuliang.cn/categories/%E5%A4%A7%E6%95%B0%E6%8D%AE/ 1.修改bin/hive文件 添加jvm启动参数: if [ $ ...

  6. 使用ZooKeeper协调多台Web Server的定时任务处理(方案1)

    背景说明: 有一套Web服务程序, 为了保证HA, 需要在多台服务器上部署, 该服务程序有一些定时任务要执行, 现在要保证的是, 同一定时任务不会在多台机器上被同时执行. 方案1 --- 任务级的主备 ...

  7. ASP.NET Web API 2 之路由配置

    Ø  简介 ASP.NET Web API 路由配置也是必须掌握的技术点之一,要真正的完全掌握和理解它也是需要一定的过程的.不过,在平常的开发过程中,对它有基本的了解就足够了.因为我们主要关注点并不在 ...

  8. .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

    写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个 ...

  9. [C++]数据结构-排序:插入排序之直接插入排序

    得赶紧休息了,木有时间写原理了.直接上代码. /* <插入排序-直接插入排序> */ #include<iostream> using namespace std; void ...

  10. Kotlin 检查空类型

    Kotlin 会检查你定义的非空类型 如果运行过程中被赋空值了  会直接crash