zoukankan      html  css  js  c++  java
  • join() threading.Thread setDaemon(True)

    '''
    join():在子线程完成之前执行,这个子线程的父线程将一直被阻塞

    setDaemon(True):将线程声明为守护线程,必须在start()之前设置,如果不设置为守护线程,程序会被无限挂起。这个方法基本和join是相反的。
    当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程就兵分两路,分别运行,那么当主线程完成想退出时,
    会检验子线程是否完成,如果子线程未完成,则主线程会等待子线程完成后再退出,但有时候,我们需要的是,只要主线程完成了,不管子线程是否完成,
    都要和主线程一起推出,这是就可以用setDaemon(True)方法啦

    '''
    import time
    import threading
    
    def music():
        print('begin to listen %s' %time.ctime())
        time.sleep(3)
        print('stop to listen %s' %time.ctime())
    
    def game():
        print('begin to play game %s' %time.ctime())
        time.sleep(5)
        print('stop to play game %s' %time.ctime())
    
    if __name__ == '__main__':
        t1 = threading.Thread(target=music)
        t2 = threading.Thread(target=game)
    
        t1.start()
        # t1.join()
    
    
        t2.start()
        # t2.join()
    
        print('ending------')
    import time
    import threading
    
    class Tt():
        def __init__(self,name,things):
            self.name = name
            self.things = things
    
        def aa(self):
            print('%s开始%s %s' %(self.name,self.things,time.ctime()))
            time.sleep(3)
            print('%s结束%s %s' %(self.name,self.things,time.ctime()))
    
    
        def bb(self):
            print('%s开始%s %s' %(self.name,self.things,time.ctime()))
            time.sleep(5)
            print('%s结束%s %s' % (self.name, self.things, time.ctime()))
    
    
    T = [] #定义一个空字典
    tt1 = Tt('小狗','音乐') #实例化
    tt2 = Tt('豆豆','游戏')
    
    t1 = threading.Thread(target=tt1.aa)#tt1.aa可以看作tt.aa()函数
    t2 = threading.Thread(target=tt2.bb)
    
    T.append(t1)
    T.append(t2)
    
    for i in T:
        i.start()
    
    print('ending------------')

    多线程的另外一种调用方法

    #多线程的另外一种调用方法
    
    import threading
    
    class Myserver(threading.Thread):
    
        def run(self):  #必须用run函数
            print('-------')
    
    
    t1 = Myserver()
    t1.start()
    print('ending----')
  • 相关阅读:
    Leetcode 33.搜索旋转排序数组
    Leetcode 32.最长有效括号
    Leetcode 31.下一个排列
    Leetcode 30.与所有单词相关联的子串
    Leetcode 25.k个一组翻转链表
    Leetcode 24.两两交换链表中的节点
    做数据分析需要“搞”人?
    求职互联网数据分析,如何准备行业知识?
    如何利用Social Listening从社会化媒体中“提炼”有价值的信息?
    运营实操|如何利用微信后台数据优化微信运营
  • 原文地址:https://www.cnblogs.com/lhqlhq/p/8986796.html
Copyright © 2011-2022 走看看