Я использую общий шаблон, где модуль имеет ряд переменных уровня модуля и импортируется другими модулями, например, модулем a, b, c ... и т. Д. Модуль импорта «globalv», который имеет, например, модульПеременная foo со значением 'bar'.Пока все хорошо, работает как положено в среде с одним процессом, и можно импортировать модуль и / или его переменные.Мне нравится этот шаблон, он делает код чистым и легко читаемым, а IDE, такие как eclipse, автоматически заполняют имена переменных.
Однако в многопроцессорной среде это не работает, как описано в документации по Python, потому чтоу каждого процесса есть отдельный интерпретатор с различными адресными пространствами.
Теперь мне интересно, возможно, существует ли общепринятый способ заставить этот шаблон работать с многопроцессорностью?Возможно, с менеджером, значением или массивом?
Я хочу сделать globalv.foo экземпляром Value или Manager и передать его дочерним процессам в качестве аргумента;Я использую только простые, выбираемые объекты, например, целые числа и строки для моих «глобальных» переменных.Первое, что нужно сделать при запуске дочернего процесса, - это заменить foo в дочернем процессе на foo, переданный родительским процессом, который является экземпляром Value или Manager.Тогда он должен быть таким же, как исходный foo в родительском процессе, и обновление foo в родительском или дочернем процессе должно быть общим.Однако, это кажется неуклюжим, любые идеи, как это сделать, будут приветствоваться.