zoukankan      html  css  js  c++  java
  • Daemon 守护线程(27-11)

    t2.setDaemon(True)不再等待里面的sleep(5)。

    当设成setDaemon(True)这个线程就不等了。

      例子一:

    import threading
    from time import ctime, sleep

    def music(func):
      for i in range(2):
        print(func, ctime())      # 1 执行  # 5 执行
        sleep(1)
        print("end music", ctime())  # 4 执行  # 6 执行

    def move(func):
      for i in range(2):
        print(func, ctime())      # 2 执行
        sleep(5)
        print("end move", ctime())

     threads = []

     t1 = threading.Thread(target=music,args=("小苹果",))

      threads.append(t1)

      t2 = threading.Thread(target=move,args=("华尔街之狼",))

      threads.append(t2)

      if __name__ == "__main__":

        t2.setDaemon(True)

        for t in threads:

          t.start()

        print("程序执行结束", ctime())    # 3 执行

    程序运行结果:

    小苹果 Fri Sep  7 20:04:24 2018
    华尔街之狼 Fri Sep  7 20:04:24 2018
    程序执行结束 Fri Sep  7 20:04:24 2018
    end music Fri Sep  7 20:04:25 2018
    小苹果 Fri Sep  7 20:04:25 2018
    end music Fri Sep  7 20:04:26 2018
    

      ------------------------------------------------------------------------------------------------------

      例子二:

    t.setDaemon(True)谁也不等待
    import threading
    from time import ctime, sleep
    
    def music(func):
      for i in range(2):
        print(func, ctime())      # 1 执行  
        sleep(1)
        print("end music", ctime())  
    
    def move(func):
      for i in range(2):
        print(func, ctime())      # 2 执行
        sleep(5)
        print("end move", ctime())
     threads = []
    
     t1 = threading.Thread(target=music,args=("小苹果",))
    
      threads.append(t1)
    
      t2 = threading.Thread(target=move,args=("华尔街之狼",))
    
      threads.append(t2)
    
      if __name__ == "__main__":
        for t in threads:
          t.setDaemon(True)
          t.start()
        print("程序执行结束", ctime())    # 3 执行

    程序运行结果:

    小苹果 Fri Sep 7 20:18:31 2018
    华尔街之狼 Fri Sep 7 20:18:31 2018
    程序执行结束 Fri Sep 7 20:18:31 2018

  • 相关阅读:
    Web开发学习之路--Eclipse+Tomcat+mysql之初体验
    Android必知必会-Stetho调试工具
    Android开发学习之路--NDK、JNI之初体验
    OpenMP基础----以图像处理中的问题为例
    leetcode 2 Add Two Numbers
    Java在linux下调用C/C++生成的so文件
    OpenCV特征点检测匹配图像-----添加包围盒
    [POJ 1442] Black Box
    [POJ 2019] Cornfields
    [HDU 1806] Frequent values
  • 原文地址:https://www.cnblogs.com/uncle-kay/p/9607126.html
Copyright © 2011-2022 走看看