在 Python 中,使用多进程运行函数时,可能需要在遍历完字典后结束进程。可以通过添加一个结束信号来告诉进程应该结束了。例如,在遍历完字典后,再向队列中放入一个特殊的结束信号。

以下是一个修改后的示例代码:

import multiprocessing

def item_put(q):
    global i
    for key_1, value_1 in data_1.items():
        data1_list = [key_1, value_1]
        q.put(data1_list)
        i += 1
    # 遍历完字典后,向队列中放入一个特殊的结束信号
    q.put(None)

if __name__ == '__main__':
    data_1 = {'a': 1, 'b': 2, 'c': 3}
    i = 0
    q = multiprocessing.Queue()
    p = multiprocessing.Process(target=item_put, args=(q,))
    p.start()
    while True:
        item = q.get()
        if item is None:
            # 收到结束信号,进程结束
            break
        print(item)
    p.join()

在这个示例中,我们向队列中放入 None 来作为结束信号。主进程通过检测队列中是否为 None 来判断子进程是否已经结束。

这种方法可以让主进程更加优雅地控制子进程的结束,并确保子进程完成任务后能够正常退出。

Python 多进程:使用结束信号优雅地终止进程

原文地址: https://www.cveoy.top/t/topic/nv2c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录