一个进程写入,而另一个进程读取共享内存

One process writing while the other one reads the shared memory

我有 2 个程序(进程)。一个进程写入共享内存,而另一个进程读取共享内存。所以,我的方法是这样的: 最初,共享内存的值为0。因此,进程1仅在值为0时写入。现在进程1已将其他值写入shm并且"waits"直到值变为0。进程2读取shm并将0写入它。等等,我的意思是在 while(1) 循环中。

我的问题是这种方法是否可行,或者我可以使用其他方法在 CPU 使用和内存使用方面做得更好吗?

提到的问题称为进程同步问题,给定的逻辑不过是该问题的忙等待方法,这是非常主要的解决方案。

阅读 Producer-Consumer Problem 与给定问题类似。

有一些比 Busy Waiting 更好的解决方案,例如:

自旋锁、信号量等

您可以从 here

获得所有这些的基本知识

希望对您有所帮助!!

我认为这很好,但是当两个进程都写入共享内存块时就会出现问题。 那时你可以使用信号量来同步这两个进程,一次允许一个进程写入共享 resource/memory 块。 你可以找到关于信号量的信息点击[这里](https://en.wikipedia.org/wiki/Semaphore_(programming)