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