我正在尝试创建优先级排队系统。我已经设计了它并写了3个线程来做到这一点。
第一个线程将项目从输出队列中取出,并根据优先级将其排序到正确的优先级队列中。然后,使用计时器和变量的第二个线程从5个优先级队列中取出项目,并将它们按优先顺序放入输入工作队列,第三个线程使用多处理对队列中的设备进行工作。
我遇到的问题是由于某种原因只有第一个线程正在初始化。我正在使用多处理管理器队列。我的线程产生如下所示:
t_one = threading.Thread(target=self.queue_sort())
t_one.start()
t_two = threading.Thread(target=self.priorityQueue_sort())
t_two.start()
t_three = threading.Thread(target=self.priorityMultiProcess_launch())
t_three.start()
有什么想法吗?
答案 0 :(得分:4)
您不希望在致电threading.Thread
时致电您的目标。相反,只需传递引用,让start
方法在新线程中调用它们:
t_one = threading.Thread(target=self.queue_sort) # note, fewer parentheses
t_one.start()
t_two = threading.Thread(target=self.priorityQueue_sort) # here too
t_two.start()
t_three = threading.Thread(target=self.priorityMultiProcess_launch) # and here
t_three.start()