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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的多处理:处理多个工作线程相关的知识,希望对你有一定的参考价值。

在我的代码中,我需要在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()是我应该为客户服务的方法。
答案

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

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

以上是关于Python中的多处理:处理多个工作线程的主要内容,如果未能解决你的问题,请参考以下文章

多线程

Python中的多处理不使用所有内核

Python中的多处理与线程

Python 线程与 Linux 中的多处理

python中的多线程和多进程编程

内存泄漏在哪里? python - 如何在python中的多处理期间使线程超时?