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

465次阅读  |  发布于5年以前

join 方法:阻塞线程 , 直到该线程执行完毕

因此 ,可以对join加一个超时操作 , join([timeout]),超过设置时间,就不再阻塞线程

jion加上还有一个后果就是, 子线程和主线程绑定在一起 , 直到子线程运行完毕,才开始执行子线程。

代码 有join:

在CODE上查看代码片派生到我的代码片


      #-*- coding: UTF-8 -*-  


      import threading 
      from time import sleep 

      def fun(): 

在CODE上查看代码片派生到我的代码片


      <span style="white-space:pre">  </span>i= 5 
        while i > 0: 
          print(111111) 
          sleep(10) 

在CODE上查看代码片派生到我的代码片


      <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上查看代码片派生到我的代码片


      #-*- 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>    

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8