Re: [Python-es] Dudas sobre concurrencia: ¿fork o threads?

Chema Cortes pych3m4 en gmail.com
Lun Feb 18 00:08:49 CET 2008


El 13/02/08, Miguel Araujo <muchochini en gmail.com> escribió:
> Gracias por la rápida respuesta. Ahora sí que lo tengo claro. Debido a que
>  aprendí a programar concurrencia con ADA en su día, he sufrido mucho los
>  hilos y creo que me resultará más fácil está opción que centrar la gestión
>  del shm en un proceso.

Sólo una cosa más a añadir: la máquina virtual CPython sólo es capaz
de interpretar bytecode linealmente. Es lo que se conoce por GIL
(Global Interpreter Lock), lo que hace que un único hilo pueda estar
activo en todo momento. Trabajar con forks es más complejo; pero es
bastante sencillo hacer que los distintos forks se comuniquen a través
de pipes, algo que parece apropiado para emular un sistema de
comunicaciones como el que quieres hacer, el fork padre haciendo de
hub/switcher y los forks hijos simulando los puertos de conexión (con
o sin memoria, según lo que quieras emular).


Más información sobre la lista de distribución Python-es