Linux C:从共享内存读取时将主进程与多个其他进程同步

问题描述 投票:0回答:1

我有一个主进程,该进程分配共享内存,然后创建多个进程(每个进程运行相同的程序)。这些进程每2秒将状态更新一次写入共享内存的特定区域(这意味着每个进程都有自己的内存区域,因此在写入访问之间无需同步)。

然后,主进程通过共享内存运行,将单个状态更新组合为一个完整的更新(也是每两秒一次。)>

我有两个正在运行的30个进程,有时我得到的完整值与第二秒的时间框架不匹配(可能是因为某些进程无法每2s精确地写出它们的数据)。

因此,我只想将完整的状态更新写入控制台,以防万一每个进程都更新了其值。

如何实现?

我有一个主进程,该进程分配共享内存,然后创建多个进程(每个进程运行相同的程序)。这些进程每2秒将状态更新写入到...

c synchronization shared-memory
1个回答
0
投票

在许多可能的方法中,一种方法是使用原子操作来创建全局(读取)锁和“写”信号灯/计数器。

© www.soinside.com 2019 - 2024. All rights reserved.