threading daemon和non-daemon代码笔记
看python主线程是如何等待
import timeimport threadingdef foo(n): for i in range(n): print(i) time.sleep(1)t1 = threading.Thread(target=foo, args=(10, ), daemon=True) # 尝试替换这里的10和下面20的顺序t1.start()t2 = threading.Thread(target=foo, args=(20, ), daemon=False)t2.start()time.sleep(2)print('Main Thread Exiting')
daemon 应用场景
主线程退出,其他daemon线程的都会被杀死
import timeimport threadingdef bar(): while True: time.sleep(1) print('bar')def foo(): print("t1's daemon = {}".format(threading.current_thread().isDaemon())) t2 = threading.Thread(target=bar) t2.start() print("t2's daemon = {}".format(t2.isDaemon())) t2.join()t1 = threading.Thread(target=foo, daemon=True)t1.start()# t1.join() 如果想工作线程不能结束,取消掉这个注释time.sleep(3)print('Main Thread Exiting')
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。