系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 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提供了大量能使我们快速便捷地处理数据的函数和方法。
602

被折叠的 条评论
为什么被折叠?



