Я пытаюсь запустить несколько процессов для параллелизации определенных задач и чтобы одна глобальная переменная была уменьшена на 1 каждый раз, когда каждый процесс выполняет метод X().Глобальная переменная приращения с использованием модуля многопроцессорности python
Я попытался рассмотреть метод многопроцессорности.Value, но не уверен, что это единственный способ сделать это. Может ли кто-нибудь предоставить некоторые фрагменты кода для этого?
from multiprocessing import Pool, Process
def X(list):
global temp
print list
temp = 10
temp -= 1
return temp
list = ['a','b','c']
pool = Pool(processes=5)
pool.map(X, list)
С помощью глобальной переменной, каждый процесс получает свою собственную копию глобальной переменной, которая не решает цель обмена это значение. Я считаю, что нужно иметь какую-то общую систему памяти, но я не уверен, как это сделать. Благодаря
[Обмен состояния между процессами] (https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes) – chepner
Я думаю, что вы ищете поддержку потоков Python - в частности, семафор. https://docs.python.org/2/library/threading.html – Prune
Не совсем. Я хочу использовать несколько процессов, но также нужна общая переменная. Threading будет решать проблему с общей переменной, но не другие проблемы, для которых мне нужны несколько процессов. – psbits