當運行在不同邏輯CPU上的同一進程的兩個線程碰到seg錯誤時會發生什麼?關於多線程和段錯誤的問題
2
A
回答
4
默認操作是退出進程。如果你處理段錯誤,我想你可以嘗試安排它發生的線程終止。但是,由於導致段錯誤自然發生的唯一因素(與raise
或kill
相對)源於未定義的行爲,程序處於不確定狀態,您不能依賴於能夠恢復任何內容。
0
爲進程調用segfault處理函數。如果你沒有做任何特別的事情,操作系統將會終止進程並收回資源。
2
我認爲所有主要操作系統的默認操作是終止進程。但是,您可以設想安裝(例如使用signal
)替代處理程序,該處理程序僅終止該線程。當然,一旦出現分段錯誤,行爲通常會變得不確定,嘗試繼續是有風險的。
3
分段錯誤的正常處理涉及過程的終止。這意味着他們都被終止。
1
由於非法執行而生成的信號由內核同步處理。所以,即使兩個線程同時產生seg錯誤,只有一個會得到''。
相關問題
- 1. 關於多線程和EntityManager的問題
- 2. 關於集合的多線程問題
- 3. 關於線程的問題
- 4. 關於線程的問題
- 5. 關於線程和鎖的問題
- 6. 關於多線程的C++ getline(字符串)分段錯誤
- 7. 關於COM多線程和STA/MTA的問題
- 8. Haskell - 關於System.Process和多線程的一些問題
- 9. 關於jvm全屬性和多線程的問題
- 10. 關於多線程訪問和編輯全局字段
- 11. C /多線程/分段錯誤/(可能)線程的隊列問題
- 12. 多線程程序中的段錯誤
- 13. 多線程程序中的段錯誤
- 14. 關於多線程,鎖和多核處理器的多部分問題(multi^3)
- 15. 關於linux內存問題的C++多線程程序
- 16. 關於多線程的java多線程
- 17. 關於C#線程與RFID的問題
- 18. 關於線程的設計問題
- 19. 關於線程邏輯的問題
- 20. Objective C,關於線程的問題
- 21. WPF和多線程問題
- 22. NInject和多線程問題
- 23. 有關多線程的問題
- 24. libcurl中的分段錯誤,多線程
- 25. 使用多線程的分段錯誤
- 26. 關於線程的WPF錯誤
- 27. 關於殭屍進程和線程的問題
- 28. 關於多線程
- 29. 關於多線程
- 30. 關於多線程
'fork'創建一個新進程,而不是一個線程。 – 2010-08-30 22:08:48
哈哈,哎呀。傻我。 – nmichaels 2010-08-31 13:51:31