Как многопроцессор Python реализован в Windows?

Учитывая отсутствие вызова fork() Windows, как пакет многопроцессорности в Python 2.6 реализован под Windows? В верхней части потоков Win32 или какой-то поддельной вилки или просто совместимости поверх существующей многопоточности?

Ответ 1

Выполняется с помощью вызова подпроцесса sys.executable(т.е. запускает новый процесс Python), а затем сериализует все глобальные переменные и отправляет их по каналу. Бедный человек клонирует текущий процесс. Это является причиной дополнительных ограничений при использовании многопроцессорной обработки на платформе Windows.

Вы также можете быть заинтересованы в просмотре Jesse Noller из PyCon о многопроцессорности, где он обсуждает его использование.