㈠ linux 共享内存 可不可以不加锁呢 系统有两个进程,一个负责写入,一个负责读取
Linux共享内存可以不用加锁,不过需要一种机制来标记共享内存的读写状态;
也就是说要让两个进程知道:
1)负责写入的进程,必须知道当前共享内存是否可以写入,上一次的写入内容是否有被负责读取的进程读走;
2)负责读取的进程,必须知道当前共享内存是否需要读取,防止重复读取。
一般的这种标记机制是通过以下方式来简单实现:
1)通过读写锁来控制;
2)共享内存上设置一个地方,专门存放当前共享内存的读写状态;
㈡ Linux进程间通信-共享内存 shmget()、shmat()、shmdt()、shmctl()
Linux进程间通信中,共享内存相关的四个核心函数分别是:shmget、shmat、shmdt、shmctl,它们的作用如下:
shmget
shmat
shmdt
shmctl
注意:在使用共享内存进行进程间通信时,需要注意安全性问题。特别是在多进程同时读写共享内存时,需要采取同步机制来防止数据混乱,如使用信号量等同步工具。