Python concurrent.futures.ProcessPoolExecutor () обновить тот же словарь, используя карту - PullRequest
0 голосов
/ 08 мая 2020

Могу я спросить, как разные процессы могут обновлять один и тот же словарь в библиотеке concurrent.futures? Я понимаю, что встроенный процесс python не взаимодействует друг с другом, так каков же самый лучший способ заставить процесс обновить глобальный словарь? Вот пример кода

import concurrent.futures

quantity = {'apple': 0, 'pear': 0}
price = {'apple': 0, 'pear': 0}

args = [('apple', 1, 10), ('pear', 2,30)]

def update(args):
    quantity[args[0]] = args[1]
    price[args[0]] = args[2]


with concurrent.futures.ProcessPoolExecutor() as executor: 
    executor.map(update, args)

Как я могу заставить исполнителя обновить price и quantity dict? Я старался избегать ThreadPool, поскольку не знаю, как управлять гоночными условиями, которые портят часть моего проекта (я хочу обновить список, а ThreadPool не сохраняет его в том порядке, в котором я хочу).

Большое спасибо

...