Python线程中对join方法的运用的教程

时间:2022-10-10 14:05:36

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>