Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 26065|Respuesta: 2

[Fuente] Un breve análisis del uso del pool de hilos .net/C# ThreadPool

[Copiar enlace]
Publicado en 21/6/2017 9:43:20 | | | |
¿Qué es un pool de hilos? ¿Por qué usar pools de hilos? ¿Cómo usar los pools de hilos?

1. ¿Qué es un pool de hilos?

        La clase ThreadPool del .NET Framework proporciona un pool de hilos que puede usarse para ejecutar tareas, enviar elementos de trabajo, gestionar E/S asíncrona, esperar en nombre de otros hilos y gestionar temporizadores. ¿Entonces, qué es un pool de hilos? El pool de hilos es en realidad un "pool" que almacena objetos de hilo, y proporciona algunos métodos básicos, como establecer el número mínimo/máximo de hilos en el pool, poner en cola los métodos a ejecutar, etc. ThreadPool es una clase estática, por lo que puede usarse directamente sin crear objetos.

2. ¿Por qué usar pools de hilos? ¿Cuáles son los beneficios?

        La web oficial de Microsoft dice lo siguiente: Muchas aplicaciones crean un gran número de hilos que están en suspenso, esperando a que ocurran eventos. También hay muchos hilos que pueden entrar en hibernación solo para despertarse periódicamente y consultar información de estado cambiada o actualizada. Pools de hilos, que te permiten usar los hilos de forma más eficiente a través de un grupo de hilos de trabajo gestionados por el sistema.

        En resumen, cada nuevo hilo necesita ocupar espacio de memoria y otros recursos, y con tantos hilos nuevos, muchos de ellos están inactivos o esperando que se liberen recursos. Hay muchos hilos que solo hacen un pequeño trabajo de forma periódica, como actualizar datos, etc., que son demasiado desperdiciadores para dibujar, y es raro que un gran número de hilos estallen en programación real y luego terminen en un corto periodo de tiempo. Por ello, se propuso el concepto de pools de hilos. Si la aplicación realiza otra petición al pool de hilos, el hilo en estado pendiente se activa y ejecuta la tarea sin crear uno nuevo, lo que ahorra mucha sobrecarga. El sistema destruirá automáticamente los hilos solo cuando el número de hilos alcance el máximo de hilos. Por lo tanto, usar pools de hilos puede evitar grandes gastos de creación y destrucción, tener mejor rendimiento y estabilidad, y en segundo lugar, los desarrolladores pueden centrarse en otras tareas entregando los hilos a la gestión del sistema.


3. ¿Cómo uso los pools de hilos?

De hecho, los pools de hilos son muy sencillos de usar, como sigue

a. Establecer el máximo y el mínimo de hilos:

ThreadPool.SetMaxThreads (int WorkerThreads,int completionPortThreads)
Establece el número de solicitudes para un conjunto de hilos que pueden estar activos al mismo tiempo. Todas las solicitudes mayores a este número permanecerán en cola hasta que el hilo del pool de hilos esté disponible. También puedes establecer el número mínimo de hilos.

b. Añadir tareas al grupo de hilos:

ThreadPool.QueueUserWorkItem (nuevo WaitCallback(nombre del método));

o
ThreadPool.QueueUserWorkItem (nuevo WaitCallback(nombre del método), parámetro);

Por ejemplo, si un máximo de 5 hilos en el pool de hilos ejecuta un método 60 veces, el salario total durante 5 años es el siguiente:



Si no usas pooling de hilos, puede que tengas que abrir 60 hilos para ejecutar el método Run() de forma asíncrona, lo que es un desperdicio de recursos de espacio. Ahora usamos hasta 5 hilos, que pueden ejecutarse en 1 segundo, y la eficiencia y el rendimiento son muy buenos.





Anterior:Código de pantalla completa del mapa Baidu (código de pantalla completa de div)
Próximo:Aviso ilegal de bloqueo de acceso de Alibaba Cloud
 Propietario| Publicado en 21/6/2017 9:47:12 |

Los pools de hilos tienen esas vantaxes:

1. En el multihilo, el pool de hilos puede reducir el número de hilos que creamos y reutilizar razonablemente los hilos dentro del pool. Porque los hilos con hilos en el pool de hilos están en un estado de espera para ser asignados.

2. No es necesario gestionar ni mantener hilos con vidas cortas, ni asignar recursos al crearlos y liberar recursos una vez que completan sus tareas.

3. El pool de hilos optimizará los hilos del pool según las características actuales del sistema.

Desventajas de los pools de hilos:

Después de entregar la tarea al pool de hilos para completarla, no podemos controlar la prioridad del hilo, establecer algunos nombres de los hilos ni otra información. [Pero podemos añadir una capa para refinar esto antes de meterlo en el pool de hilos]

Publicado en 6/12/2017 11:28:49 |
Márcalo primero para que puedas aprender después
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com