脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python线程中对join方法的运用的教程

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

2020-06-03 09:52zengchenacmer Python

这篇文章主要介绍了Python线程中对join方法的运用,join方法是阻塞线程的基本方法,需要的朋友可以参考下

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> 

延伸 · 阅读

精彩推荐