No se mucho de esto pero me parece que los hilos comparten muchos más elementos que los procesos, por ejemplo archivos abiertos y otros muchos recursos. Por tanto, conmutar entre hilos es más rápido que hacerlo entre procesos.
Si, en un cambio de contexto hace falta guardar todo eso. Pero es que un cambio de contexto, por definicion, implica quitar el proceso en ejecucion y poner otro. Es a nivel de SO.
Cuando cambia de un hilo a otro, no cambias de contexto. El contexto del procesador es el mismo. Depende de la libreria que uses para implementar los hilos que se realizaran mas o menos cambios, y gracias a la gran cantidad de cosas que ya estan compartidas (porque ya estamos en un proceso con una memoria asignada, unos descriptores de ficheros abiertos...) el proceso es mas rápido.
Re:Multithreading.
(Puntos:1)( http://egodem.blogspot.com/ | Última bitácora: Jueves, 23 Enero de 2014, 12:37h )
Re:Multithreading.
(Puntos:1)Si, en un cambio de contexto hace falta guardar todo eso. Pero es que un cambio de contexto, por definicion, implica quitar el proceso en ejecucion y poner otro. Es a nivel de SO.
Cuando cambia de un hilo a otro, no cambias de contexto. El contexto del procesador es el mismo. Depende de la libreria que uses para implementar los hilos que se realizaran mas o menos cambios, y gracias a la gran cantidad de cosas que ya estan compartidas (porque ya estamos en un proceso con una memoria asignada, unos descriptores de ficheros abiertos...) el proceso es mas rápido.