我閱讀了 python 的單個檔案。它說必須在主執行緒中注冊單個處理程式。
如果我啟動一個執行緒(祖父),它啟動一個子執行緒(父親),它啟動另一個執行緒(孫子)
與孫子相比,父親執行緒是主執行緒嗎?
uj5u.com熱心網友回復:
不,只有一個主執行緒。它是在程式啟動時運行的執行緒。
您可以檢查您的代碼在哪個執行緒上運行threading.current_thread() == threading.main_thread()。
該signal.signal()檔案指出:
當啟用執行緒時,該函式只能從主解釋器的主執行緒呼叫;嘗試從其他執行緒呼叫它會導致引發
ValueError例外。
因此,使用此函式的最佳方法是在啟動任何執行緒之前設定信號處理程式。
請注意,檔案還說:
Python 信號處理程式總是在主解釋器的主 Python 執行緒中執行,即使信號是在另一個執行緒中接收到的。這意味著信號不能用作執行緒間通信的手段。
uj5u.com熱心網友回復:
如果我正確理解了這個問題;不,主執行緒不會繼承地跟蹤孫子。盡管有不同的方法可以啟動執行緒,但一種依賴于子執行緒在關閉父執行緒之前完成并關閉,或者父執行緒并行繼續。
但是在一般情況下,父親由主執行緒“擁有”,而孩子由父親“擁有”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/407396.html
標籤:
