在 Windows 7 Pro 64 位上运行 Python 3.2。
好吧,我这里有一些非常基本的代码,只是表现得不像我想要的那样。
#!/usr/bin/env python
import time
import threading
def shutdown(sleeptime):
time.sleep(sleeptime)
print('I have executed')
threading.Thread(target = shutdown(5)).start()
print('I go first')
脚本运行的想法是,它启动一个线程,该线程休眠 5 秒,然后打印出“我已执行”。与此同时,脚本继续运行并打印出“我先走”。
实际发生的是脚本启动线程,一切都在等待它完成,然后它继续。显然,我没有正确执行线程处理,但我无法找到使用 Python 3 进行线程处理的简单示例。
请您参考如下方法:
你的陈述:
threading.Thread(target = shutdown(5)).start()
可以等效地写成:
x = shutdown(5)
threading.Thread(target = x).start()
即您首先调用关闭,然后将结果传递给 Thread 构造函数。
您需要将您的函数和您的参数列表分别传递给 Thread,而无需调用它:
threading.Thread(target = shutdown, args = (5,)).start()
