python multiprocessing pool.map, когда рабочий процесс завершен? - PullRequest
0 голосов
/ 09 мая 2020

мой код, как показано ниже.
проблема в том, что если все задачи рабочего процесса пула выполнены (говорит, что метод выполнен), pool.join () застрял.

если есть правила, которые определяют методы для pool.map ()?
т.е. конец методов - alaways sys.exit () или return.

def saysomething(pipe_connection):
    print("my pid", os.getpid())
    # my_queue.put(os.getpid())
    pipe_connection.send(os.getpid())
    time.sleep(5)
    print(os.getpid(), " end")
    sys.exit()
    # return

pool.map_async(saysomething, child_connection_list)
# insert code here wait all pool worker process task done (return or sys.exit ). all worker process(saysomething method) are done, then, pool.close() executed.

pool.close()
# pool.join() stucked
pool.terminate()
...