Threads

De SolarSockets C++ Sockets C++

Se leer en Wikipedia

Un hilo de ejecución, en sistemas operativos, es similar a un proceso en que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Los hilos permiten dividir un programa en dos o más tareas que corren simultáneamente, por medio de la multiprogramación. En realidad, este método permite incrementar el rendimiento de un procesador de manera considerable. En todos los sistemas de hoy en día los hilos son utilizados para simplificar la estructura de un programa que lleva a cabo diferentes funciones.

Todos los hilos de un proceso comparten los recursos del proceso. Residen en el mismo espacio de direcciones y tienen acceso a los mismos datos. Cuando un hilo modifica un dato en la memoria, los otros hilos utilizan el resultado cuando acceden al dato.


SolarSockets hace uso intensivo de los threads, permitiendo asi que mientras algunos hilos estan a la espera de datos , mieras que otros atienden la entrada de datos, a la vez que el hilo principal de tu aplicacion continua con su ejecicion normal. Evitando el bloqueo de tu aplicacion y haciendo innecesaria la creacion de un ciclo infinito que cheque el status de cada socket ya que esto consume muchos recursos.

Hay muchas formas de hacer esto mismo con otros metodos. Por ejemplo usando select con los descriptores de fichero, o bien usando forks en lugar de threads, cada uno de estos metodos tiene sus ventajas y desventajas. Nuestra experiencia es que usando threads se obtienen los mejores resultados.

Puedes obtener mas informacion sobre esto buscando las diferencias entre forks y threads, tambien encontraras infromacion si buscas la instruccion select para c++ en algun buscador. Es interesante saber que algunos proyectos grandes, que inicialmente usaban select han estado modificando su codigo para usar threads, por ejemplo uno de los servidores web mas usado, Apache, inicialmente no soporaba threads.

Estadisticas
  • Modif 31 dic 2006.
  • Vista 1.127 veces.