簡體   English   中英

進程退出及其對線程的影響

[英]process exit and impact on threads

在維護下,我發現在某些不可恢復的錯誤的情況下,項目代碼(在Linux上的c/c++中)調用libc exit函數。 但是,此進程終止調用將在多個線程中使用(每個遇到不可恢復的情況時)。 現在-

  • 可以從主線程以外的線程調用進程exit而沒有任何副作用。
  • 每當調用exit (在主線程或任何其他線程中)時,都可以保證正常退出線程。

我知道標准(手冊頁)對此沒有任何說明,最好的方法是啟動所有線程的正常終止並使用通知機制,必須通知main線程正常終止。 但是,由於這是一個正在維護的項目,因此請在更改之前檢查當前行為是否正確。

我面臨的問題是,我可以看到隨機崩潰,其中一個線程處於exit調用執行的適當過程中。

對於第一個問題,當您調用exit (從任何線程,main或child退出)時,進程將立即退出。

對於第二個問題,請參見上面的答案。 簡而言之,沒有。 線程不會“優雅地”退出(無論如何從應用程序的角度來看)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM