Question related to multiprocessing.Process
Terry Reedy
tjreedy at udel.edu
Sat Jan 19 06:27:33 EST 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