多处理中如何利用池函数实现队列工作

2024-09-28 22:05:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网站上看到了这个例子,我想知道如何使代码按照pool函数工作。 我已经阅读了很多文档,但是最接近这段代码的是Olson提出的问题:Can I use a multiprocessing Queue in a function called by Pool.imap?

我想给代码分配4个进程。请温柔一点,我也一直在问stackoverflow的问题,我想问的是,有人提供了一个例子,根据我提供的例子。代码如下:

import random
from multiprocessing import Process, Queue
import time
from datetime import datetime

def function1(q):
    while True:
        daydate = datetime.now()
        number = random.randrange(1, 215)
        print('Sent to function2: ({}, {})'.format(daydate, number))
        q.put((daydate, number))
        time.sleep(2)


def function2(q):
    while True:
        date, number = q.get()
        print("Recevied values from function1: ({}, {})".format(date, number))
        time.sleep(2)

if __name__ == "__main__":
    q = Queue()
    a = Process(target=function1, args=(q,))
    a.start()
    b = Process(target=function2, args=(q,))
    b.start()
    a.join()
    b.join()

我是新来的,所以请温柔一点谢谢。那么,我如何在这个代码中使用pool函数并为其分配4个进程呢?这就是问题所在,我提前非常感谢大家。你知道吗


Tags: 函数代码fromimportnumberdatetimetimequeue