Как примерно выглядит мой код:
from multiprocessing import Process
#SOME GLOBAL VARIABLES INITIALIZED HERE. for example:
x = "something"
def main():
some_func()
def some_func():
#references and modifications to GLOBAL VARIABLE x HERE
if __name__ == '__main__':
main()
Это работает, как и ожидалось, поскольку на x ссылаются и изменяют правильно, так, как я хочу. Однако это не :
from multiprocessing import Process
#SOME GLOBAL VARIABLES INITIALIZED HERE. for example:
x = "something"
def main():
P = Process(target = some_func)
P1.start()
P1.join()
def some_func():
#references and modifications to GLOBAL VARIABLE x HERE
if __name__ == '__main__':
main()
Интересно отметить, что когда я делаю выводы в процессе, проверяя состояние «глобальной переменной», модификации, по-видимому, имеютвступил в силу. Тем не менее, они применяются только для области действия процесса, и как только он завершен (объединение), и я делаю вывод в основной, глобальная переменная находится в том же состоянии, в котором она находилась до того, как процесс был «нацелен» на него.
Я пытался использовать ключевое слово "global" внутри функции, но это не помогает. То же самое происходит.
Что я могу сделать?