繁体   English   中英

不同的 multiprocessing.Queue 对象在不通信的情况下是否应该用于不同的进程?

[英]Should different multiprocessing.Queue objects be used for different processes when they do not communicate?

我是多处理的新手,这是我程序中的示例代码,我想知道这是否是最佳实践。

我已经设置了两个相互不通信的进程,但我通过了相同的multiprocess.Queue() object 来接收它们的 output。代码示例如下:

"""Setting up multi-processing"""
    que = Queue()
    processes_list = list()
    process1 = Process(target=lambda q, arg1, arg2, arg3, arg4: q.put(readScope(arg1, arg2, arg3, arg4)),
                      args=(que, scope, numCollects, numChan, startTimeVoltage,))
    processes_list.append(process1)
    process2 = Process(target=lambda q, arg1, arg2, arg3: q.put(readOpsens(arg1, arg2, arg3)),
                      args=(que, ser, ntimes, startTimeOpsens,))
    processes_list.append(process2)

    for process in processes_list:
        process.start()

    for process in processes_list:
        process.join()

    """Data manipulation"""
    voltageData = que.get()
    tempData = que.get()

这是好习惯吗?

这些看跌期权可以以任何顺序出现。 电压数据可能最终出现在温度数据变量中,而温度数据最终出现在电压数据变量中。 因此,如果您想确保获得第一个进程的 output,然后是第二个进程,要么标记并排序,要么使用两个队列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM