Haz*_*zel 8 python multithreading daemon
此代码不起作用......
self._thread = threading.Timer(interval=2,
function=self._sendRequestState,
args=(self._lockState,),
daemon=True).start()
Run Code Online (Sandbox Code Playgroud)
所以我应该这样写..
self._thread = threading.Timer(interval=2,
function=self._sendRequestState,
args=(self._lockState,))
self._thread.daemon = True
self._thread.start()
Run Code Online (Sandbox Code Playgroud)
但是Timer该类有Thread.__init__,Thread.__init__有“ daemon”作为输入参数。我不知道为什么它不起作用......
您可以在此处找到该threading.Thread()构造函数的源代码(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()
Run Code Online (Sandbox Code Playgroud)
如果您传入daemon=True它,它将被放入kwargs,但是正如您在代码中看到的那样,它没有任何反应。所以是的,你是对的,你必须daemon在创建它之后(以及在调用之前设置属性start()。在构造Timer.
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |