Princípio de implementação do pool de threads? Que elementos são necessários para construir uma piscina?

O pool de encadeamentos é uma tecnologia de programação multiencadeada comum, usada principalmente para implementar um grupo de encadeamentos gerenciados pelo pool de encadeamentos no programa aplicativo para otimizar a eficiência da execução simultânea multiencadeada. A principal função do pool de encadeamentos é gerenciar o ciclo de vida dos encadeamentos, armazenar em cache encadeamentos reutilizáveis ​​e evitar a sobrecarga de criar e destruir encadeamentos.

O princípio de implementação do pool de threads é o seguinte:

 1. Inicialização do pool de threads: Quando o pool de threads é inicializado, um grupo de threads disponíveis será criado e armazenado em um pool de threads, e alguns parâmetros básicos de configuração serão definidos, como o tamanho do pool de threads, o tamanho do maior pool de threads, tempo de sobrevivência do thread, tamanho da fila de tarefas, etc.
 2. Envio de tarefa: No aplicativo, se uma tarefa precisar ser executada, a tarefa pode ser enviada ao pool de threads, e o pool de threads obterá uma tarefa da fila de tarefas e atribuirá um thread ocioso para executar a tarefa.
 3. Tarefas de execução de encadeamento: quando houver encadeamentos disponíveis no pool de encadeamentos, o pool de encadeamentos pegará uma tarefa da fila de tarefas e atribuirá a tarefa a um encadeamento ocioso para execução até que não haja encadeamentos disponíveis no pool de encadeamentos.
 4. Fila de tarefas: A fila de tarefas é utilizada para armazenar tarefas aguardando execução.Quando não houver threads disponíveis no pool de threads, as tarefas serão armazenadas na fila de tarefas até que haja threads disponíveis para executar as tarefas.
 5. Encerramento do pool de encadeamentos: quando o aplicativo conclui todas as tarefas, ele precisa fechar o pool de encadeamentos, liberar recursos de encadeamento, limpar a fila de tarefas e aguardar o término de todos os encadeamentos.

Construir um pool de threads requer consideração dos seguintes elementos:

 1. Número de encadeamentos principais: O número mínimo de encadeamentos no conjunto de encadeamentos.
 2. Número máximo de encadeamentos: o número máximo de encadeamentos no conjunto de encadeamentos.
 3. Tempo de sobrevivência do thread: O tempo de sobrevivência dos threads ociosos, que serão destruídos após esse período.
 4. Fila de tarefas: Uma estrutura de dados que armazena tarefas esperando para serem executadas, podendo ser uma fila de bloqueio ou uma fila de não bloqueio.
 5. Fábrica de threads: A fábrica usada para criar objetos de threads, você pode personalizar a fábrica de threads para criar threads.
 6. Estratégia de rejeição: Quando o número de threads no pool de threads atinge o valor máximo, a fila de tarefas está cheia e novas tarefas não podem ser processadas, uma estratégia de rejeição precisa ser definida para processar novas tarefas. Estratégias comuns de rejeição incluem: descartar tarefas, lançar exceções, retornar tarefas aos chamadores, etc.

Acho que você gosta

Origin blog.csdn.net/qq_42133976/article/details/130417166
Recomendado
Clasificación