Question related to multiprocessing.Process

Terry Reedy tjreedy at udel.edu
Sat Jan 19 12:27:33 CET 2013


On 1/19/2013 12:05 AM, Chris Angelico wrote:
> On Sat, Jan 19, 2013 at 3:50 PM, Cen Wang <iwarobots at gmail.com> wrote:
>> Hi, when I use multiprocessing.Process in this way:
>>
>> from multiprocessing import Process
>>
>> class MyProcess(Process):
>>
>>      def __init__(self):
>>          Process.__init__(self)
>>
>>      def run(self):
>>          print 'x'
>>
>> p = MyProcess()
>> p.start()
>>
>> It just keeps printing 'x' on my command prompt and does not end. But I think MyProcess should print an 'x' and then terminate. I don't why this is happening. I'm using Win7 64 bit, Python 2.7.3. Any idea? Thanks in advance.
>
> Multiprocessing on Windows requires that your module be importable. So
> it imports your main module, which instantiates another MyProcess,
> starts it, rinse and repeat. You'll need to protect your main routine
> code:
>
> if __name__=="__main__":
>      p = MyProcess()
>      p.start()

This is documented in
17.2.3. Programming guidelines
17.2.3.2. Windows

-- 
Terry Jan Reedy




More information about the Python-list mailing list