多进程使用

linux下可使用 fork 函数

#!/bin/env python

import os

print 'Process (%s) start...' % os.getpid()

pid = os.fork()

if pid==0:

print 'I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid())

os._exit(1)

else:

print 'I (%s) just created a child process (%s).' % (os.getpid(), pid)

输出

Process (22246) start...

I (22246) just created a child process (22247).

I am child process (22247) and my parent is 22246.

Queue

Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。put方法用以插入数据到队列中,put方法还有两个可选参数:blocked和timeout。如果blocked为True(默认值),并且timeout为正值,该方法会阻塞timeout指定的时间,直到该队列有剩余的空间。如果超时,会抛出Queue.Full异常。如果blocked为False,但该Queue已满,会立即抛出Queue.Full异常。

get方法可以从队列读取并且删除一个元素。同样,get方法有两个可选参数:blocked和timeout。如果blocked为True(默认值),并且timeout为正值,那么在等待时间内没有取到任何元素,会抛出Queue.Empty异常。如果blocked为False,有两种情况存在,如果Queue有一个值可用,则立即返回该值,否则,如果队列为空,则立即抛出Queue.Empty异常。

共享内存

基本特点:

(1)共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝。

(2)为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。(文件映射)

(3)由于多个进程共享一段内存,因此也需要依靠某种同步机制。

优缺点:

优点:快速在进程间传递数据

缺点: 数据安全上存在风险,内存中的内容会被其他进程覆盖或者篡改。

“我们相信人人都可以成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"

c++ fork 进程时 共享内存_尚学堂百战程序员:Python多进程与共享内存相关推荐

  1. sprintf函数的格式化字符串_尚学堂百战程序员:Python 字符串处理

    一个字符不等价于一个字节,字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示.一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数.这里所说的不同的表示 ...

  2. 尚学堂百战程序员1573题---答案总结第一章 初识Java

    第一章 初识Java 1. 你学习编程的目的是什么?学习编程最快的办法是什么? 答:我觉得的我喜欢计算机,我认为计算机是一个很神奇的东西,所以我要学计算机专业,同时,我认为学计算机学编程是一个比较容易 ...

  3. 尚学堂百战程序员---第一章面试题

    1.你学习编程的目的是什么?学习编程最快的方法是什么? 因为喜欢编程.所以大学就报了编程.我觉得人一生起码要为自己喜欢的奋斗一下,所以我学习了编程 最快的方法当然还是敲代码了,因为很多东西你不打你根本 ...

  4. 如何编写代码使jsp程序错误在输入框上面显示_252尚学堂百战程序员049天

    训练大纲(第052天) 大家如果想快速有效的学习,思想核心是"以建立知识体系为核心",具体方法是"守破离".确保老师课堂上做的操作,反复练习直到熟练. 第103 ...

  5. Linux的快速使用_jdk安装_tomcat安装_mysql安装-尚学堂~百战程序员学习笔记

    一.Linux 简介 1.发展历史 丹尼斯·里奇 肯·汤普逊 系统内核汇编. B 语言. C 语言做为内核语言,发明 unix linus 召集 unix 原班人马.发明了系统 linus 后更名为 ...

  6. python释放变量内存_Python尚学堂高淇|1113引用的本质栈内存,堆内存,内存的示意图,标识符,变量的声明初始化,垃圾回收机制...

    011-引用的本质-栈内存和堆内存-内存的示意图在Python当中,变量也成为:对象的引用,因为,变量的存储就是对象的地址变量通过地址引用了对象变量位于堆内存(压栈,出栈等细节,后续再介绍)对象位于: ...

  7. 程序布置到服务器上速度慢_百战程序员python面试题总结---高级语法(4)

    4.1 简述 TCP 和 UDP 的区别以及优缺点? UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口号信息. 优点:UDP 速度快.操作简单.要求系统资源较少,由于通讯不需要连接, ...

  8. 百战程序员python资源_【百战程序员】Python 文件I/O

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 打开和关闭文件 现在,您已经可以向标准输入和输出进行读写.现在,来看看怎么读写实际的数据文件. Python 提供了必要的函数和方法进行默认情况下的文件基 ...

  9. c++ fork 进程时 共享内存_因为没答好进程间通信,面试挂了...

    前言 开场小故事 炎炎夏日,张三骑着单车去面试花了 1 小时,一路上汗流浃背. 结果面试过程只花了 5 分钟就结束了,面完的时候,天还是依然是亮的,还得在烈日下奔波 1 小时回去. 面试五分钟,骑车两 ...

最新文章

  1. CVPR 2021:记一次神奇的 Rebuttal 经历
  2. 《高性能科学与工程计算》——3.7 习题
  3. Active Directory 对象授权还原
  4. Winupdatelist
  5. 如何编写一个npm包,可以公共使用?
  6. 轻松实现SQL Server异地备份
  7. Spark2.3.1在Idea控制台调整日志等级
  8. ssm启动不报错_解决idea导入ssm项目启动tomcat报错404的问题
  9. Python案例:给出三角形构成方案
  10. colorkey唇釉是否安全_Colorkey 空气唇釉真的那么好用吗?
  11. 传奇gm命令怎么用_传奇GM常用命令
  12. [转][ASP.net]后台页面刷新
  13. telnet不通linux下tomcat端口
  14. [2018.04.23 T3] 最大值
  15. Python 02 编写代码
  16. ERP系统与MRP系统
  17. 计算机组成原理头歌实验
  18. My_blog个人博客系统
  19. SWUST OJ954: 单链表的链接
  20. C语言函数指针与NULL

热门文章

  1. 【英语学习】【Daily English】U15 Culture L01 You'll be used to life here before long
  2. 【英语学习】【Daily English】U11 Work L04 Can you keep it a secret?
  3. C开源hash代码uthash的用法总结(2)
  4. error LNK2005: _DllMain@12 already defined in MSVC
  5. 学生使用计算机违纪处理,软件学院违纪学生跟踪教育管理办法
  6. Riot工程师:三步让你的游戏更新更快更小
  7. 在 Win vs2017 下编译 zint
  8. hbase_学习_01_HBase环境搭建(单机)
  9. 再见 2017 你好 2018 ,程序员们的精彩年度总结
  10. SQL Server权限设置