进程间通信方式

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、进程间通信的经典实现

我们知道,操作系统中的各个进程通常运行于独立的内存空间中,并且有严格的机制来防止进程间的非法访问,但是,这并不代表进程与进程间不允许互相通信;想反,进程间通信是操作系统中一个重要的概念,应用非常广泛。

广义的讲,进程间通信是指运行在不同进程(不论是否在同一台机器)中的若干线程间的数据交换。

二、几种常见的通信方式

1.共享内存(shared Memory)

共享内存是一种常用的进程间通信机制。由于两个进程可以直接共享访问同一块内存区域,减少了数据的复制操作,因而速度上的优势比较明显。一般情况下,实现共享内存的步骤:

1.创建内存共享区:进程1首先通过系统提供的API从内存中申请一块共享区域——比如在linux环境中可以通过shmget函数来实现。生成的共享内存块将与某个特定的key(即shmget的第一个参数)进行绑定。

2.映射内存共享区:成功创建了内存共享区后,我们需要将它映射到进程1的空间中,才能进一步操作。在linux环境下,这一步可以通过shmat来实现。

3.访问内存共享区:进程1已经创建了内存共享区。那么进程2如何访问到它呢?没错,就是利用第一步中的key。具体而言,进程2只要通过shmget,并传入同一个key值即可,然后进程2执行shmat,将这一块内存映射到它的空间中。

4.进程间通信:共享内存的各个进程实现了内存映射后,便可以利用该区域进行信息交换。由于内存共享区并没有同步的机制。所以参与通信的诸进程需要自己协商处理。

5.撤销内存映射区:完成了进程间通信后 ,各个进程都需要撤销之前的映射操作。在linux环境可以通过shmdt来实现。

6.删除内存共享区:最后必须删除共享区域,以便回收内存。在linux环境中,可以通过shctl函数来实现。

2.管道(pipe)

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值