У меня есть несколько предопределенных переменных, названных в таком формате, как AAAX, AAAY, AAAZ, BBBX, BBBY, BBBZ, CCCX, CCCY, CCCZ, которые служат ленивыми словарями, в которых я сопоставляю два значения.Я знаю, что это не лучшая практика, но, к сожалению, у меня есть ограничения по времени, из-за которых мне сейчас трудно переписать весь мой код.Все эти переменные представлены в виде (очень больших) строк или списков.
По сути, я пытаюсь применить данную функцию к AAAX, чтобы получить обновленные значения для AAAY иAAAZ.Однако, поскольку функция занимает много времени, и мне также нужно применить ее к BBBX и CCCX, я попытался запустить ее параллельно, используя такой код:
if ___name___ == '__main__':
p = Pool (processes = 3)
p.map (function, [AAA,BBB,CCC])
Где AAA,BBB и CCC - это строки, которые я использую вместе с global () для вызова нужных мне переменных.
Однако есть только небольшая проблема: хотя функция работает, когда я вызываю ее для AAA, BBB или CCCпо отдельности это не работает, так как я пытаюсь парализовать его с помощью pool.map, по некоторым причинам, которые выходят за рамки моего понимания.Код будет просто игнорироваться Python.
Я попытался понять, что не так, написав такой простой код:
from multiprocessing import Pool
def test(x):
print x
return x
pool = Pool (processes = 4)
pool.map(test, [1,2,3,4])
Опять консоль осталась пустой.
Если функция карты не соответствует тому, что я пытаюсь сделать, у кого-нибудь будет предложение, которое это сделало?
Заранее спасибо!