特定于时间的线程



我正在编写一个程序,其中包含计时字典(以及其他信息),但关键是我需要为每个条目创建一个单独的线程,当线程运行时,执行简单的一行命令,然后为分配的时间(从字典传递)睡眠,然后重新运行。下面是我想要实现的一个例子:

#!/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循环似乎只是为字典中的第一个值创建一个线程。我有一个问题,让所有的线程以正确的时间运行

这给了你预期的输出(我认为,纠正我,如果我错了):

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()

不要忘记在创建线程后启动它:

new_worker_thread = worker(values).start()

最新更新