#python
#python
Вопрос:
p = Process(target=f, args=(myObject,))
p.start()
p.join()
В результате экспериментов внутри функции f()
я могу получить доступ myObject
нормально, и ее элементы кажутся неповрежденными, хотя предположительно мы находимся в другом процессе. Печать id(myObject)
в текущей функции и в f()
возвращает одно и то же число.
Является ли Python тайно выполняющим IPC при myObject
доступе внутри f()
?
Ответ №1:
Как писал Уинстон: в Unix процесс будет разветвлен, а разветвленный процесс в основном является полной копией родительского процесса (вот почему идентификатор идентичен).
Ответ №2:
Фактический процесс зависит от того, используете ли вы unix или Windows.
В *nix используется fork(), который создает полную копию вашего процесса.
Я полагаю, что в Windows объект обрабатывается (см. Модуль pickle) и отправляется по какому-либо каналу IPC.