2009-04-19 9 views
13

Dada la ausencia de una llamada fork() de Windows, ¿cómo se implementa el paquete de multiprocesamiento en Python 2.6 en Windows? ¿Encima de los hilos de Win32 o algún tipo de horquilla falsa o simplemente compatibilidad sobre el multihilo existente?¿Cómo se implementa el multiproceso de Python en Windows?

+3

Si Adam ha respondido a su pregunta, debe marcarla como aceptada :-) –

Respuesta

29

Se hace mediante una llamada de subproceso a sys.executable (es decir, iniciar un nuevo proceso de Python) seguido de la serialización de todos los globales y el envío de esos a través de la tubería. La clonación de un hombre pobre del proceso actual. Esta es la causa del extra restrictions encontrado al usar multiprocesamiento en Windows plaform.

Puede que también esté interesado en ver Jesse Noller's talk from PyCon sobre multiprocesamiento, donde explica su uso.

+4

Adam es correcto (soy Jesse) - es desafortunado, pero todas las "implementaciones" de fork en win32 son hacks horribles. Por lo tanto, nos quedamos con el subproceso y la serialización – jnoller

+0

¡Muchas gracias por una respuesta clara! –

+1

Jeff: debe marcar esta respuesta como aceptada si está contento con ella. – Adam

Cuestiones relacionadas