多线程未初始化

时间:2014-07-24 13:08:33

标签: python priority-queue python-multithreading

我正在尝试创建优先级排队系统。我已经设计了它并写了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()

有什么想法吗?

1 个答案:

答案 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()
相关问题