''' 启动线程前设置thread.setDaemon(True) 即 设置该线程为守护线程, 表示该线程是不重要的,进程退出时不需要等待这个线程执行完成。 这样做的意义在于:避免子线程无限死循环,导致退不出程序,也就是避免传说中的孤儿进程。 ''' import threading from time import ctime, sleep def listenMusic(name): print("Begin listening to %s ------%s" % (name, ctime())) sleep(3) print("Stop listening ------%s" % ctime()) def readBook(title): print("Begin reading a %s ------%s" % (title, ctime())) sleep(5) print('Stop reading ------%s' % ctime()) threads = [] t1 = threading.Thread(target=listenMusic, args=('music',)) t2 = threading.Thread(target=readBook, args=('book',)) threads.append(t1) threads.append(t2) if __name__ == '__main__': # 效果 == 下一步for循环中t.setDaemon(True) # t1.setDaemon(True) # t2.setDaemon(True) for t in threads: # 对列表进行遍历 t.setDaemon(True) # 注意:一定在start之前设置 t.start() # 启动线程活动 print(t.getName()) # 返回线程名 print("count:", threading.active_count()) # 返回正在运行的线程数量 # t.join() # 串行 t1.join() # 等待t1 # t1.setDaemon(True) # 报错 print("All Over -------%s" % ctime())
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211282.html原文链接:https://javaforall.net
