为什么我的主线程没有完成它的任务?
Why is my main thread not completing its task?
在下面的代码中,守护线程只提供输出,而主线程则没有。如果主线程独立于“x”(守护进程)线程工作,那么为什么它不要求输入(它只是提供守护线程的输出)。
import threading
import time
def daemon_thread():
print()
timer = 0
while True:
time.sleep(1)
timer += 1
print(timer, "s")
x = threading.Thread(target=daemon_thread(), args=())
x.start()
answer = input("Do you wish to exit?")
print(threading.active_count())
对于 Thread 构造函数,您应该传递对适当函数的引用。您不调用该函数。因此:
x = threading.Thread(target=daemon_thread)
您在线程中调用了您的函数class,这就是主线程不工作的原因
X = threading.Thread(target=daemon_thread())
# Wrong
X = threading.Thread(target=daemon_thread)
# Right
在下面的代码中,守护线程只提供输出,而主线程则没有。如果主线程独立于“x”(守护进程)线程工作,那么为什么它不要求输入(它只是提供守护线程的输出)。
import threading
import time
def daemon_thread():
print()
timer = 0
while True:
time.sleep(1)
timer += 1
print(timer, "s")
x = threading.Thread(target=daemon_thread(), args=())
x.start()
answer = input("Do you wish to exit?")
print(threading.active_count())
对于 Thread 构造函数,您应该传递对适当函数的引用。您不调用该函数。因此:
x = threading.Thread(target=daemon_thread)
您在线程中调用了您的函数class,这就是主线程不工作的原因
X = threading.Thread(target=daemon_thread())
# Wrong
X = threading.Thread(target=daemon_thread)
# Right