setDaemon方法

setDaemon方法启动线程前设置 thread setDaemon True 即设置该线程为守护线程 表示该线程是不重要的 进程退出时不需要等待这个线程执行完成 这样做的意义在于 避免子线程无限死循环 导致退不出程序 也就是避免传说中的孤儿进程 importthread sleepdefList name

''' 启动线程前设置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

(0)
上一篇 2026年3月18日 下午10:47
下一篇 2026年3月18日 下午10:48


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号