gpt4 book ai didi

python - threading.Thread 的 setDaemon() 方法

转载 作者:IT老高 更新时间:2023-10-28 20:20:56 30 4
gpt4 key购买 nike

我是python编程的新手,我的理解是一个进程可以是一个守护进程,但是一个守护进程模式下的线程,我无法理解这个用例,我会请求python大师帮助我在理解这一点。

最佳答案

下面是一些使用线程的基本代码:

import Queue
import threading

def basic_worker(queue):
while True:
item = queue.get()
# do_work(item)
print(item)
queue.task_done()
def basic():
# http://docs.python.org/library/queue.html
queue = Queue.Queue()
for i in range(3):
t = threading.Thread(target=basic_worker,args=(queue,))
t.daemon = True
t.start()
for item in range(4):
queue.put(item)
queue.join() # block until all tasks are done
print('got here')

basic()

当你运行它时,你会得到

% test.py
0
1
2
3
got here

现在注释掉这一行:

         t.daemon = True

再次运行它,您会看到脚本打印相同的结果,但挂起。主线程结束(注意 got here 已打印),但第二个线程永远不会结束。

相反,当t.daemon设置为True时,线程t在主线程结束时终止。

请注意,“守护线程”与 daemon processes 关系不大。 .

关于python - threading.Thread 的 setDaemon() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127401/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com