【发布时间】:2011-09-22 13:56:25
【问题描述】:
我想使用一个互斥锁,它将用于同步对驻留在内存中的一些变量的访问,这两个不同的进程共享黑白。我怎样才能做到这一点。非常感谢您执行的代码示例。
【问题讨论】:
-
为什么你的标题说“pthreads”但你问的是“进程”?无论如何,您如何通过内存映射在进程之间共享内存?
-
我通过在分叉前分配内存来共享内存。所以一个进程是父进程,另一个是子进程。通过 pthread,我的意思是使用 pthread_mutex_lock。
-
我认为
fork创建了内存的副本,因此它不完全是“共享”的。 -
Kerrek SB,实际上我在分叉之前使用 shmget 和 shmat 附加共享内存,因此它们在两个进程中都映射到相同的地址!
-
@KerrekSB 操作系统并不像你想象的那样关心线程和进程之间的区别。在 Linux 中,无论如何它们都是“克隆”的。