首页 > 编程知识 正文

多进程 python(多进程共享内存)

时间:2023-05-06 19:26:37 阅读:80261 作者:4402

多进程使用

在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 )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。