簡體   English   中英

假設我啟動了一個多進程,然后在該多進程中啟動一個線程並終止該多進程。 我的線程會發生什么?

[英]Suppose I start a multi-process then within that multi-process I start a thread and kill the multi-process. What happens to my thread?

我有一個獨特的情況,我使用 PyQt5 和多處理庫打開表單。

這些表單中的每一個都可以導入和運行用於測試某些硬件組件的測試腳本。 我使用多處理,因此在測試運行時,測試的打印語句被重新路由到 UI 中的一個窗口。 (使用 sys.stdout = {my ui text display} 重新路由)。 在那個多進程中,我啟動了一個線程來運行測試,這樣 UI 就不會鎖定並顯示沒有響應。

如果我關閉表單(結束我的多進程)但從未完成我的線程,我的線程會發生什么?

該線程是多進程的子進程,但我不確定線程​​是否僅僅因為它的父進程試圖關閉而被中斷。 它似乎沒有任何明顯的影響,但我認為這是內存泄漏,或者當線程嘗試將數據返回到我的多進程時,它只會在后台的某個時刻崩潰。

當你殺死一個進程時,與它相關的所有東西也會被殺死,因為它是處理進程的操作系統,你不需要擔心你的線程“永遠活着”。

https://stackoverflow.com/questions/8373439/does-a-thread-terminate-automatically-if-its-main-process-is-forcefully-ended#:~:text=When%20you%20kill%20process%2C %20everything,%20system%20just%20kills%20everything

暫無
暫無

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

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