gpt4 book ai didi

Python 线程定时器初始守护进程

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:36 24 4
gpt4 key购买 nike

此代码无法运行......

self._thread = threading.Timer(interval=2, 
function=self._sendRequestState,
args=(self._lockState,),
daemon=True).start()

所以我应该这样写..

self._thread = threading.Timer(interval=2, 
function=self._sendRequestState,
args=(self._lockState,))
self._thread.daemon = True
self._thread.start()

但是Timer类有Thread.__init__Thread.__init__有“daemon”作为输入参数。我不知道为什么它不起作用......

最佳答案

您可以找到 threading.Thread() 构造函数的源代码 here (cpython,最常见的 python 实现):

def __init__(self, interval, function, args=None, kwargs=None):
Thread.__init__(self)
self.interval = interval
self.function = function
self.args = args if args is not None else []
self.kwargs = kwargs if kwargs is not None else {}
self.finished = Event()

如果您将 daemon=True 传递给它,它将被放入 kwargs 中,但正如您在代码中看到的那样,它不会发生任何事情。所以是的,你是对的,你必须在创建守护进程之后(以及调用 start() 之前设置它)属性。在构造Timer时似乎没有直接设置它的选项。

关于Python 线程定时器初始守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49074715/

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