Поддерживает ли Joblib блокировку или подобные примитивы? - PullRequest
0 голосов
/ 25 апреля 2020
from joblib import Parallel, delayed
num_cores = multiprocessing.cpu_count()
lock = Lock()
def run(num):
    lock.acquire()
    print("enter"+str(num))
    time.sleep(1)
    print("exit"+str(num))
    lock.release()
results = Parallel(n_jobs=num_cores)(delayed(run)(s) for s in [1,2,3,4,5])

Приведенный выше код дает ошибку из-за lock _pickle.PicklingError: Could not pickle the task to send it to the workers.

Поддерживает ли Joblib блокировку или другие примитивы, чтобы я мог гарантировать, что следующее будет выполнено атомарно:

    print("enter"+str(num))
    time.sleep(1)
    print("exit"+str(num))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...