2013-01-06 37 views
4

当我们让子进程是父进程的克隆复制互斥从父到子进程

已经有家长在过程中使用互斥...

能互斥体复制到子进程?

如果是的话,做什么的缺点是什么?

回答

3

如果在进程内存中定义了当前值,但不会由父进程更新,因为进程之间的内存不共享。

只要在共享内存中分配并且可以同时访问进程,就可以在进程之间共享互斥锁。 pthread_mutexattr_setpshared

您还可以使用指定的进程旗语,甚至在情况未命名过程semaphore你叉,这将释放你从进程之间分配的共享内存,因为信号是系统范围内,并保持在该文件的形式文件系统。

+0

非常感谢你:)它非常有用! – RamHS

+2

!小心!第二个链接中的未命名信号量的fork示例是错误的,并且不起作用。未命名的信号量被复制到子进程,而不是共享的,请参阅:http://blog.superpat.com/2010/07/14/semaphores-on-linux-sem_init-vs-sem_open/ –