我正在编写一个包含时序字典的程序(以及其他信息),但关键是我需要为每个条目创建一个单独的线程,当线程运行时,做一个简单的行命令然后休眠一段时间(从字典传递),然后重新运行。以下是我试图实现的一个例子:
#!/usr/bin/python
import threading
import time
class worker(threading.Thread):
def __init__(self,timer):
while True:
print("job %s" % timer)
time.sleep(timer/100)
if __name__ == "__main__":
mydict = {1:150, 2:250, 3:350}
for values in mydict.keys():
new_worker_thread = worker(values)
字典中的每个值表示一个时间(以毫秒为单位),这需要传递给线程,然后运行直到停止。
任何帮助都将不胜感激。
由于 吉姆
对不起,这可能不太清楚。
我正在使用的for循环似乎只为字典中的第一个值创建一个线程。我在使用正确的时间运行所有线程时遇到问题
答案 0 :(得分:1)
这会给你预期的输出(我想,如果我错了,请纠正我):
class worker(threading.Thread):
def __init__(self, timer):
self.timer = timer
super(worker, self).__init__()
def run(self):
while True:
print("job %s" % self.timer)
time.sleep(10)
if __name__ == "__main__":
mydict = {1:150, 2:250, 3:350}
for values in mydict.keys():
print(values)
new_worker_thread = worker(values)
new_worker_thread.start()
答案 1 :(得分:0)
创建后不要忘记启动线程:
new_worker_thread = worker(values).start()