Alex Rivera | Logout

Python multiprocessing continuously spawns pythonw.exe processes without doing any actual work

Asked 2010-08-04T12:19:01.313
15

I don't understand why this simple code

# file: mp.py
from multiprocessing import Process
import sys

def func(x):
    print 'works ', x + 2
    sys.stdout.flush()

p = Process(target= func, args= (2, ))
p.start()
p.join()
p.terminate()
print 'done'
sys.stdout.flush()

creates "pythonw.exe" processes continuously and it doesn't print anything, even though I run it from the command line:

python mp.py

I am running the latest of Python 2.6 on Windows 7 both 32 and 64 bits

Edit
Report

1 Answer

1

Funny, works on my Linux machine:

$ python mp.py
works  4
done
$

Is the multiprocessing thing supposed to work on Windows? A lot of programs originated in the Unix world don't handle Windows so well, because Unix uses fork(2) to clone processes quite cheaply, but (it is my understanding) that Windows does not support fork(2) gracefully, if at all.

answered 2010-08-04T12:28:59.690

Your Answer