Spa*_*arc 1 python multithreading
在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')
Run Code Online (Sandbox Code Playgroud)
这个想法是脚本运行,它启动一个休眠5秒钟的线程然后打印出"我已执行".与此同时,剧本继续前进并打印出"我先走了".
实际发生的是脚本启动线程,一切都等待它完成然后继续.显然我没有正确地进行线程化,但是我很难找到使用Python 3进行线程化的简单示例.
Vin*_*irk 10
你的陈述:
threading.Thread(target = shutdown(5)).start()
Run Code Online (Sandbox Code Playgroud)
可以等效地写成:
x = shutdown(5)
threading.Thread(target = x).start()
Run Code Online (Sandbox Code Playgroud)
即你先调用shutdown,然后将结果传递给Thread构造函数.
你需要将你的函数传递给Thread,而不是调用它和你的参数列表:
threading.Thread(target = shutdown, args = (5,)).start()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |