Python多处理。处理操作错误:[Errno 24]打开的文件太多

2024-09-30 22:19:19 发布

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

我有以下代码:

def formatGravities(gravities):
    # create a list to keep all processes
    processes = []

    # create a list to keep connections
    parent_connections = []

    formatted_gravities = []

    # create a process per instance
    for gravity in gravities:
        # create a pipe for communication
        parent_conn, child_conn = Pipe()
        parent_connections.append(parent_conn)

        # create the process, pass arguments
        process = Process(target=formatGravity,
                          args=(gravity, child_conn))
        processes.append(process)

    # start all processes
    for process in processes:
        process.start()

    # make sure that all processes have finished
    for process in processes:
        process.join()

    for parent_connection in parent_connections:
        formatted_gravities.append(parent_connection.recv()[0])

    return formatted_gravities

len(gravities)的数量达到数百万。我可以理解,我无法同时打开数百万个进程,这可能就是我出错的原因,但是如果已经生成了最大数量的进程,我如何更改代码使其等待生成进程呢

我确实有不能使用multiprocessing.Queue或multiprocessing.Pool的要求


Tags: 代码infor进程createallconnconnections