当前位置:首页 > 内存 > 正文

两个进程共享内存(获取共享内存进程数)

  • 内存
  • 2024-06-07 04:22:43
  • 1039

一、如何不用锁在2个进程间共享内存交换数据共享内存允许两个或多个进程共享特定的存储区域,是最快的进程间通信机制,因为数据不需要来回复制。共享内存可以通过普通文件的mmap()来实现(特殊情况也可以使用匿名映射),也可以通过系统的V共享内存机制来实现。该应用的界面和原理很简单,但内部机制却很复杂。为了实现更安全的通信,它常常与信号量等同步机制一起使用。mmap的机制是在磁盘上创建一个文件,并在每个进程内存中开辟一个单独的空间用于映射。如果进程很多,则不会消耗多少实际物理内存(主存)。shm机制:每个进程的共享内存直接连接到实际的物理内存。1、mmap存储在当前硬盘上,当前存储没有镜像到主存中。优点:存储容量可以很大(超过主存)。存储在物理内存(主存)中,当前存储量直接反映在主存中。优点:进程间访问速度(读写)比磁盘快:存储容量不能太大(超过主存:如果指定的存储容量不大,则使用)。shm如果存储容量大则使用mmap。


二、进程和进程之间无法共享内存内存不能共享。每个进程都有自己独立的虚拟地址空间,进程之间的内存是独立的,不能共享。共享内存是一种有效的进程间通信方法,允许多个进程访问同一物理内存。共享内存允许多个进程访问同一内存区域,从而允许进程之间共享数据。