где у меня возникла аналогичная проблема, как в связанный вопрос, только что улучшенный, который я вызываю из другого файла.
К примеру:
Код File1:
Код: Выделить всё
import Code
result = Code.Main_Code()
print(result)
Код: Выделить всё
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