我有以下python腳本:
腳本.py
from threading import Thread
def func():
while True:
pass
a = Thread(target=func)
a.start()
print('started the thread')
從終端 ( python script.py) 運行它時,它會列印started the thread并掛在那里。來自C后臺,我知道主執行緒何時完成,其余執行緒也將終止。Python中不是這種情況嗎?即使沒有呼叫 python 也會等待a.join()嗎?python中是否有主執行緒的概念或所有執行緒都相同?
uj5u.com熱心網友回復:
Python中有一個“主執行緒”,一般是啟動Python解釋器的執行緒。模塊創建的執行緒在threading本機作業系統執行緒之上具有一些行為層。其中一種行為是,當解釋器退出時,正常關閉處理的一部分是主執行緒加入每個非守護行程threading.Thread- 所以,是的,Python 通常等待所有其他執行緒結束。
Python 退出時是否強制關閉 daemonthreading.Thread取決于作業系統,盡管我相信現在所有主要作業系統都會殺死它們。
如果你想退出解釋器而不管非守護行程是否threading.Thread正在運行,你需要殺死這個作業,或者呼叫os._exit(). 注意前導下劃線!不推薦,但如果你需要它就在那里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433427.html
標籤:python-3.x 多线程
