Python中的多处理:处理多个工作线程

问题描述 投票:1回答:1

在我的代码中,我需要在python程序中运行多个工作线程实例。我最初创建了几个工作线程实例(比如10),然后将它们添加到池中。每当客户端请求服务时,都应该为客户端调用并保留一个线程。完成任务后,线程应该添加回池中。

到目前为止,我已经编写了以下代码。但是我不确定如何在池中永远运行线程(它们应该在池内时休眠),在需要时调用并获取服务,并在处理后将它们添加回池(应该再次睡眠)。任何帮助,将不胜感激。

PRED = Queue(10)

class Worker(threading.Thread):
    def __init__(self, threadID, name):
        threading.Thread.__init__(self)
        self.threadID  =threadID
        self.name = name

    def run(self):
        print("starting " + self.name + " thread")
        while True:
            ??
        print("Exiting " + self.name + " thread")


def work():
    print("working")
    time.sleep(3)
  • 假设工作线程处于PRED队列中。
  • work()是我应该为客户服务的方法。
python python-3.x multithreading python-multiprocessing
1个回答
1
投票

使用任务队列将任务发送给您的员工。让您的工作人员监听任务队列并等待它是空的。当一个worker从队列中获取一个任务时,它应该执行它,然后返回轮询队列。很标准的工人模式。

当我说任务时,我的意思是你可以在队列中放入一个实际的方法。工人可以拿起并执行它。

© www.soinside.com 2019 - 2024. All rights reserved.