Multiprocessamento do Windows

Como eu descobri o Windows é um pouco de porco quando se trata de multiprocessamento e eu tenho uma pergunta sobre isso.

O pydoc afirma que você deveproteger o ponto de entrada de um aplicativo do Windows ao usar multiprocessamento.

Isso significa apenas o código que cria o novo processo?

Por exemplo

Script 1
import multiprocessing

def somemethod():
    while True:
        print 'do stuff'

# this will need protecting
p = multiprocessing.Process(target=somemethod).start()

# this wont
if __name__ == '__main__':
    p = multiprocessing.Process(target=somemethod).start()

Neste script você precisa envolver isso sea Principal porque a linha em gerar o processo.Mas e se você tivesse?

Script 2

arquivo1.py

import file2
if __name__ == '__main__':
    p = Aclass().start()

file2.py

import multiprocessing
ITEM = 0
def method1():
    print 'method1'

method1()

class Aclass(multiprocessing.Process):
    def __init__(self):
        print 'Aclass'
        super(Aclass, self).__init__()

    def run(self):
        print 'stuff'

O que precisaria ser protegido neste caso? O que aconteceria se houvesse um __main__ no Arquivo 2, o código dentro dele seria executado se um processo estivesse sendo criado?

NOTA: Eu sei que o código não irá compilar. É apenas um exemplo.

questionAnswers(1)

yourAnswerToTheQuestion