我想找到我的問題的解決方案:我有使用共享內存共享數據的一些過程。爲了同步,我使用互斥鎖。但是當一個鎖定互斥鎖的進程崩潰時,所有其他進程也會崩潰。那麼如何避免這個問題呢?互斥多進程
Q
互斥多進程
0
A
回答
0
行爲取決於其互斥實現您正在使用(例如WinAPI的,並行線程...)。
例如,在WinAPI中,如果持有互斥鎖的進程沒有釋放它,則等待該互斥鎖的其他進程將從WaitForSingleObject
等函數接收返回值WAIT_ABANDONED
。有可能你沒有處理它。
其他庫可能有自己的怪癖和實施細則,並應進行相應的審查。
此外還要確保你談論的是多進程而不是多線程,因爲在單個進程下的多個線程的情況下,在某些實現下,如果該進程的第一個線程死掉 - 那麼所有線程在那個過程中。
+0
是的,我正在談論多進程。我使用pthread。我發現這個函數:'pthread_mutex_timedlock_np'。這件事可以幫助我嗎? – thanhtv 2012-08-08 01:15:00
相關問題
- 1. SQLite多線程互斥體
- 2. Perl中的進程間互斥
- 3. 跨進程使用互斥鎖
- 4. C多進程訪問共享內存互斥鎖
- 5. 由多個子進程鎖定互斥鎖
- 6. 使用許多互斥鎖
- 7. 一個互斥對比多個互斥。哪一個更適合線程池?
- 8. boost線程互斥陣列
- 9. windows中每個進程/線程的最大互斥量數
- 10. Java互斥
- 11. 互斥對象
- 12. 互斥問題
- 13. 使用互斥
- 14. 互斥理解
- 15. 使NSOperations互斥
- 16. 與互斥
- 17. 使用Redis進行相互排斥
- 18. 二進制信號VS互斥
- 19. Boost進程間互斥進程崩潰而不是等待鎖定?
- 20. C#找到進程誰擁有互斥體
- 21. 如何使用互斥鎖自動交換3個進程?
- 22. 使用互斥對訂單中的線程進行同步
- 23. 相互排斥而不觸及這兩個進程
- 24. 關閉另一個進程中互斥鎖的句柄
- 25. Android中的進程共享互斥鎖和條件變量
- 26. Win32當進程崩潰時,不會釋放互斥體
- 27. procexp如何關閉另一個進程持有的互斥鎖?
- 28. 在所有進程中監視互斥量,水蛭信息量
- 29. 相互排斥對
- 30. 同步和互斥
墜毀第一方法可能是創建該共享存儲器中的一個,所以,當它碰撞,共享存儲器丟失。所以所有其他進程不再訪問有效的內存地址,並且它們沒有足夠的錯誤處理。 – Jay 2012-08-06 03:22:52
如果創建共享內存的進程沒有崩潰?墜毀的過程是另一個? – thanhtv 2012-08-06 03:52:16
如果創建的共享存儲器中的過程中沒有崩潰,另外應該不會崩潰,除非有其他原因,如在共享存儲器中損壞的數據。 – Jay 2012-08-06 03:58:49