Python – многопроцессорность и передача переменных для каждого вызова (но во внешней функции)Python

Программы на Python
Anonymous
Python – многопроцессорность и передача переменных для каждого вызова (но во внешней функции)

Сообщение Anonymous »

Я хотел бы улучшить вопрос из Python: как передать значения локальных переменных в пул многопроцессорной библиотеки?
где у меня возникла аналогичная проблема, как в связанный вопрос, только что улучшенный, который я вызываю из другого файла.
К примеру:
Код File1:

Код: Выделить всё

import Code

result = Code.Main_Code()
print(result)
Код File2:

Код: Выделить всё

from multiprocessing import Pool

def Multicore_Patterns_List_processor(args):

Variable1, Variable2, Variable3, Pattern = args
print(f"{Variable1=}, {Variable2=}, {Variable3=}, current pattern is {Pattern}")

def gen_args(Variable1, Variable2, Variable3):
for p in range(10):
yield Variable1, Variable2, Variable3, p

def Main_Code():
Variable1 = 1
Variable2 = 2
Variable3 = 3
MultiCores = 3
print("Finish of simple code and start of heavy code in parralel")
with Pool(processes=MultiCores) as pool:
pool.imap(Multicore_Patterns_List_processor, gen_args(Variable1, Variable2, Variable3))
pool.close()
pool.join()

print("Finish of heavy code and continue of simple code")
done = True
return done
Это не работает.
Я пытаюсь достичь состояния, в котором я позволю Python обрабатываться одним процессором, потому что код прост и позже в файле «Code.py» есть более тяжелый код, который позволяет обрабатывать параллельно и благодаря этому ускорять время обработки локальной функции (поскольку функция обрабатывается несколько раз 10). После этого питон должен продолжить работу в одном процессоре, чтобы закончить простой код.
UPD: как пишет Джонни, я не разместил здесь ошибку, извините. Поэтому я также попытался внести ваше исправление, но чтобы не зацикливаться на проблеме. Я пытался записать видео во время отладки, где я уверен, что ".map" вместо ".imap":
ссылка:
когда я использую «.imap», я не получаю никаких ошибок, код просто пропускает код в «Multicore_Patterns_List_processor», так как на терминале ничего не печатается.>

Подробнее здесь: https://stackoverflow.com/questions/785 ... xternal-fu

Вернуться в «Python»