Python 多处理队列和工作进程在关闭池之前返回

Python 多处理队列和工作进程在关闭池之前返回,python,queue,multiprocessing,communication,Python,Queue,Multiprocessing,Communication,我想创建一些worker,并根据套接字接收到的数据为它们分配工作。同时,我希望在工人完成工作时返回工人结果,不要等到所有工人都结束 是否可以在关闭池之前返回 main.py 提取器 您的回调函数将在worker处理完它之后,在池关闭之前立即返回结果 所以要得到结果,你只需投票,看看有没有新的结果 只需确保在不等待的线程中执行,在本例中,这将是您的主线程 last_results_len = 0 while True: # or whatever you choose to.. resul

我想创建一些worker,并根据套接字接收到的数据为它们分配工作。同时,我希望在工人完成工作时返回工人结果,不要等到所有工人都结束

是否可以在关闭池之前返回

main.py

提取器


您的回调函数将在worker处理完它之后,在池关闭之前立即返回结果

所以要得到结果,你只需投票,看看有没有新的结果

只需确保在不等待的线程中执行,在本例中,这将是您的主线程

last_results_len = 0
while True: # or whatever you choose to..
    results_len = len(__result)
    if results_len != last_results_len:
        last_results_len += 1  # add one so you get them all in case they come in quick
        print(__result[results_len - 1]) # whatever you want to do here

    time.sleep(1)

我忽略了这一点。谢谢你的帮助!
class Extractor(object):
    """Simulate extractor"""
    def __init__(self):
        pass

    def BarcodeSearcher(self,x):
        ti = time.time()
        tf = random.randint(1,4)
        while time.time() - ti < tf:
            random.uniform(1., 2.)
        return tf
last_results_len = 0
while True: # or whatever you choose to..
    results_len = len(__result)
    if results_len != last_results_len:
        last_results_len += 1  # add one so you get them all in case they come in quick
        print(__result[results_len - 1]) # whatever you want to do here

    time.sleep(1)