Python 3 проверяет, выполняется ли функция внутри многопроцессорного пула - PullRequest
0 голосов
/ 28 июня 2018

Можно ли проверить в f, находится ли он внутри пула? Кроме того, что является хорошим уловом, который только ловит эту конкретную ошибку?

a = [[1, 2], [1, 2]]

def g(x):
    return x

def f(x):
    try:
        with Pool(2) as p:
            print(p.map(g, x))
    except Exception as e:
        print(type(e))
    return x

with Pool(2) as p:
    print(p.map(f, a))

1 Ответ

0 голосов
/ 28 июня 2018

Это работает для меня

from multiprocessing import current_process
if "daemon" in current_process()._config:
or
if "ForkPoolWorker" in str(current_process()):
...