Un pool (grupo) de hilos es creado para rehusar estos hilos, similar a la forma en que se usan las conexiones de base de datos. En lugar de intentar matar un hilo, este se envía al pool donde este puede ser reusado si se presenta una solicitud de un hilo.
Al trabajar con un pool de hilos de.NET, coloca en cola los elementos de trabajo donde son recolectados por los hilos disponibles desde el pool. En el siguiente ejemplo puede verse como trabaja el pool.
using System;
using System.Threading;
namespace ThreadPools
{
class Program
{
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem((s) =>
{
//Console.WriteLine("Trabajando en un hilo desde el pool de hilos... {0} ", s.ToString());
Console.WriteLine("Trabajando en un hilo desde el pool de hilos");
});
Console.ReadLine();
}
}
}
El pool de hilos limita el numero de hilos y puede obtenerse menos grado de paralelismo que al usar la clase Thread. Pero el pool de hilos tiene muchas ventajas.
Por ejemplo un servicio Web responde a una solicitud. Todos estas solicitudes vienen en tiempo y forma desconocida. El pool de hilos se asegura de que cada solicitud sea agregada a la cola, esto asegura que su servidor no se vea rebasado por la cantidad de solicitudes. Si usted crea hilos manualmente, usted puede fácilmente agotar al servidor.
Cada solicitud tienen características únicas en el trabajo que este necesita realizar. El pool de hilos es mapeado y este trabaja con los hilos disponible en el sistema.
El pool de hilos automáticamente maneja la cantidad de hilos necesarios. Cuando este es creado inicia vacío. Cuando una solicitud viene, este crea hilos adicionales para manejar estas solicitudes. El Tiempo de trabajo del hilo puede ser tan largo como sea necesario hasta terminar una operación, y seguir manejando las nuevas solicitudes que se manejaran por los hilos.
Para más información del pool de hilos
http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx.
Referencias:
Por ejemplo un servicio Web responde a una solicitud. Todos estas solicitudes vienen en tiempo y forma desconocida. El pool de hilos se asegura de que cada solicitud sea agregada a la cola, esto asegura que su servidor no se vea rebasado por la cantidad de solicitudes. Si usted crea hilos manualmente, usted puede fácilmente agotar al servidor.
Cada solicitud tienen características únicas en el trabajo que este necesita realizar. El pool de hilos es mapeado y este trabaja con los hilos disponible en el sistema.
El pool de hilos automáticamente maneja la cantidad de hilos necesarios. Cuando este es creado inicia vacío. Cuando una solicitud viene, este crea hilos adicionales para manejar estas solicitudes. El Tiempo de trabajo del hilo puede ser tan largo como sea necesario hasta terminar una operación, y seguir manejando las nuevas solicitudes que se manejaran por los hilos.
Para más información del pool de hilos
http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx.
Referencias:
Exam Ref 70-483 Programming in C#
No hay comentarios.:
Publicar un comentario