Python线程计时器初始守护程序

2024-10-01 07:28:02 发布

您现在位置:Python中文网/ 问答频道 /正文

这个代码不起作用。。。。。。在

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

所以我应该这样写。。在

^{pr2}$

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


Tags: 代码selftrueinitargsfunctionthreadstart
1条回答
网友
1楼 · 发布于 2024-10-01 07:28:02

您可以找到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,但是正如您在代码中看到的那样,它没有发生任何变化。所以,是的,您是正确的,您必须在创建daemon属性之后设置它(在调用start()之前。在构造Timer时,似乎没有直接设置它的选项。在

相关问题 更多 >