[pyar] Threads o Multiprocessing?

Alejandro Santos listas en alejolp.com
Vie Oct 21 01:42:36 ART 2011


2011/10/20 Martin Cerdeira <martincerdeira en gmail.com>:
>
> Antes de ponerme a probar y a romper como loco, alguno experimentó con
> esto??
>

La diferencia entre threading y multiprocessing es la forma que tenés
para sincronizar las tareas/threads/procesos. En general es la mayor
diferencia, y el tema del GIL te afecta en cosas muy específicas (por
ejemplo si estás haciendo un server web en Python puro).

Para sincronizar threads usás memoria compartida (semaforos,
monitores, variables condicion, etc.) mientras que con Multiprocessing
usás envío de mensajes (queues, pipes). Con Multiprocessing también
podes usar semáforos, variables condicion, etc. pero la misma
documentación te dice que no los vas a usar [1].

Entonces, la elección termina siendo de qué forma querés sincronizar
las tareas. Las dos formas (memoria compartida vs. mensajes) tienen
sus cosas buenas y sus cosas malas, y siempre termina siendo una
eleccion de gustos, pero más importante qué es lo que mejor se ajusta
a lo que quieras hacer.

[1] http://docs.python.org/library/multiprocessing.html#synchronization-primitives

-- 
Alejandro Santos



More information about the pyar mailing list