多进程使用
在linux上可以使用fork函数
# #! /糟糕的太阳/env python
导入操作系统
打印进程(% s )开始. ' %操作系统. getpid ) )。
PID=操作系统.福克斯(
if pid==0:
打印' IAMChildProcess (% s )和维护) s.'% )操作系统. getppid ),操作系统. getppid ) )
操作系统退出(1)。
else:
打印' I (%s )日本工业% s ).' % ) % (操作系统. getpid,pid ) ) ) ) ) )。
输出功率
流程(2246 )开始.
I(22246 ) justcreatedachildprocess ) 22247。
Iamchildprocess(22247 )和我的父母is 22246。
队列
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行业的聚集地。 ' '
如果有什么问题也可以私信,或者关注IT百战程序员(baizhanchengxuyuan )