join 方法:阻塞線程 , 直到該線程執行完畢
因此 ,可以對join加一個超時操作 , join([timeout]),超過設置時間,就不再阻塞線程
jion加上還有一個后果就是, 子線程和主線程綁定在一起 , 直到子線程運行完畢,才開始執行子線程。
代碼 有join:
在CODE上查看代碼片派生到我的代碼片
1
2
3
4
5
6
7
|
#-*- coding: UTF-8 -*- import threading from time import sleep def fun(): |
在CODE上查看代碼片派生到我的代碼片
1
2
3
4
|
<span style = "white-space:pre" > < / span>i = 5 while i > 0 : print ( 111111 ) sleep( 10 ) |
在CODE上查看代碼片派生到我的代碼片
1
2
3
4
5
6
7
8
9
10
11
|
<span style = "white-space:pre" > < / span>i - - if __name__ = = '__main__' : a = threading.Thread(target = fun) a.start() a.join() while True : print ( 'aaaaaaa' ) sleep( 1 ) |
在CODE上查看代碼片派生到我的代碼片
輸出:<pre name="code" class="python">111111 輸完之后, 才輸出 <span style="font-family: Arial, Helvetica, sans-serif;">aaaaaaa </span>
在CODE上查看代碼片派生到我的代碼片
代碼: 無join
在CODE上查看代碼片派生到我的代碼片
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#-*- coding: UTF-8 -*- import threading from time import sleep def fun(): while True : print ( 111111 ) sleep( 10 ) if __name__ = = '__main__' : a = threading.Thread(target = fun) a.start() while True : print ( 'aaaaaaa' ) sleep( 1 ) |
在CODE上查看代碼片派生到我的代碼片
<pre name="code" class="python" style="font-size:18px;">111111 和 <span style="font-family: Arial, Helvetica, sans-serif;">aaaaaaa 間隔輸出</span>