我的守护线程为什么会暂停调用函数的执行?
问题描述:
如果我的问题的术语不完全正确,请原谅我;我不是一个专业程序员。我的守护线程为什么会暂停调用函数的执行?
这是我的守护线程调用函数:
pausetime = 30
print("starting pause...")
cm = threading.Thread(target=self._pause_console(pausetime), args=())
cm.daemon = True
cm.start()
print("pause daemon thread started.")
控制台输出打印我的打印语句(:
def _pause_console(self, pause_time):
print("pausing console")
self.javaserver.server_muted = True
print("muted")
time.sleep(pause_time)
print("unmuted")
self.javaserver.server_muted = False
它是由代码(全部在同一个班)被称为30秒睡眠被指定):
开始暂停
暂停控制台
静音
静音
暂停守护线程开始
我期待的是 “暂停守护..” 之前 '静音' 至少会出现..也就是说,线程启动后主循环的执行会继续。然而,在我看来,'cm.start()'必须在'print(“暂停守护进程线程启动之前退出。”)'语句被执行?
我在做什么错误或我的概念错误在哪里?
(很难相信没有人遇到过这一点,但我似乎无法找到在这里类似的问题)
答
因为你的代码立即调用目标函数在构造Thread
对象。您应该将其替换为以下内容:
cm = threading.Thread(target=self._pause_console, args=(pausetime,))
非常感谢。这是有道理的。 –