2
在手冊頁pthread_detach
我讀到,當任何線程分離時,然後在線程終止時,它釋放其資源回到系統。當線程釋放其資源
什麼是線程資源?它是否是該線程所使用的內存的一部分,如果是這樣的話,則內存是進程地址空間的一部分。我試圖理解這一點,但我知道了。
那麼可聯接線程呢,線程什麼時候釋放它的資源呢?在pthread_join
時,或在終止或過程的時間?
當在pthread_cancel
命令中釋放資源時。
在手冊頁pthread_detach
我讀到,當任何線程分離時,然後在線程終止時,它釋放其資源回到系統。當線程釋放其資源
什麼是線程資源?它是否是該線程所使用的內存的一部分,如果是這樣的話,則內存是進程地址空間的一部分。我試圖理解這一點,但我知道了。
那麼可聯接線程呢,線程什麼時候釋放它的資源呢?在pthread_join
時,或在終止或過程的時間?
當在pthread_cancel
命令中釋放資源時。
每個線程都會在操作系統中消耗一定數量的簿記資源,並在用戶空間內存中佔用其自己的執行堆棧。當線程被銷燬這些資源被釋放,可幾個條件,比如下發生:在可連接的線程調用時
pthread_join
回報,main
回報正常或exit
被調用,exec
被成功調用。但是,退出正在運行main
的線程並保持其他正在運行的分離線程是可能的。爲此,您必須在主線程中調用pthread_exit
。
那麼'pthread_cancel'和一個線程返回並且沒有被主線程加入呢? –
@Abhiteshkhatri:取消對討論無關緊要。您仍然需要加入該線程,特別是如果您想知道取消是否有效。有關詳細信息,請參見[手冊](http://man7.org/linux/man-pages/man3/pthread_cancel.3.html)。 –