join([timeout]) 主線程a中,建立子執行緒b,b呼叫join函式會使得主線程阻塞,直到子執行緒執行結束或超時。引數timeout是乙個數值型別,用來表示超時時間,如果未提供該引數,那麼主調執行緒將一直阻塞直到子執行緒結束。
注意:必須在start() 方法呼叫之後設定。注意:必須在start() 方法呼叫之後設定。
import threading
import time
class mythread(threading.thread):
def __init__(self, name):
super(mythread, self).__init__()
self.num = 5
self.name = name
def run(self):
print(self.name, ':start')
while self.num:
self.num -= 1
time.sleep(1)
print(self.name, ':over')
def main():
t = mythread('t')
t.start()
t.join()
for i in range(5):
print(i)
print('main done!')
if __name__ == '__main__':
main()
輸出如下:
t :start
t :over01
234main done!
如果不加入第行的t.join()則輸出如下,主線程不會等待子執行緒,並且主線程執行完後子執行緒仍在執行。
t :start01
234main done!
t :over
setdaemon()方法。主線程a中,建立子執行緒b,b呼叫setdaemon(),即把主線設定為守護執行緒,如果主線程執行結束,則不管子執行緒b是否完成,一併和主線程退出。
注意:必須在start() 方法呼叫之前設定。
import threading
import time
class mythread(threading.thread):
def __init__(self, name):
super(mythread, self).__init__()
self.num = 5
self.name = name
def run(self):
print(self.name, ':start')
while self.num:
self.num -= 1
time.sleep(1)
print(self.name, ':over')
def main():
t = mythread('t')
t.setdaemon(true)
t.start()
for i in range(5):
print(i)
print('main done!')
if __name__ == '__main__':
main()
Python多執行緒 join
宣告 本文介紹介紹的是thread.threading的 join方法 join timeout none wait until the thread terminates.this blocks the calling thread until the thread whose join meth...
python 執行緒中join方法的使用
1 作用 讓子執行緒插入主線程,可理解為在在join呼叫處把子執行緒的code move到了主線程,直到被插入的code執行結束,主線程接著下面的繼續 執行 2 觸發條件 手動呼叫或主線程要退出時自動呼叫 3 引數說明 join方法可可傳入引數表示子執行緒加入主線程的執行時間,超出此時間,強制結束子...
python 多執行緒中join 的作用
一 前言 溫習python 多程序語法的時候,對 join的理解不是很透徹,本文通過 實踐來加深對 join 的認識。multiprocessing 是python提供的跨平台版本的多程序模組。multiprocessing可以充分利用多核,提公升程式執行效率。multiprocessing支援子程...