Re: Dudas sobre concurrencia: ¿fork o threads?

Miguel Araujo muchochini en gmail.com
Lun Feb 18 11:01:03 CET 2008


Gracias por el apunte,

Pero perdona mi ignorancia. No se supone que esto pasa en todos los
lenguajes. Los procesos o hilos corren aparentemente en paralelo, aunque
solamente uno está en ejecución en todo momento, salvo que haya varios cores
o procesadores ¿no?

Me he decantado por los threads porque me resultan más sencillos, es la
costumbre de ADA. De todos modos hay cosas que me están sorprendiendo,
parece que Python no hace bien los cambios de contexto entre hilos. Cuando
un hilo empieza en un bucle, los demás aparentemente no ejecutan. Por lo que
he leído Python no está muy pensado para esto del threading.

Un saludo,
      Miguel

El día 18/02/08, Chema Cortes <pych3m4 en gmail.com> escribió:
>
> 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).
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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