2013-01-06 69 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/ –