python: что происходит, когда объект передается в многопроцессорной обработке.Процесс?

#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.