API do Pool de Threads
A API (interface de programação de aplicativo) do pool de threads usa um design baseado em objeto. Cada um dos seguintes objetos é representado por uma estrutura de dados do modo de usuário:
- Um objeto de pool é um conjunto de threads de trabalho que podem ser usados para executar o trabalho. Cada processo pode criar vários pools isolados com características diferentes, conforme necessário. Também há um pool padrão para cada processo.
- Um grupo limpo-up está associado a um conjunto de objetos geradores de retorno de chamada. Existem funções para aguardar e liberar todos os objetos que são membros de cada grupo limpo. Isso libera o aplicativo de manter o controle de todos os objetos que ele criou.
- Um objeto de trabalho é atribuído a um pool e, opcionalmente, a um grupo limpo. Ele pode ser postado, fazendo com que um thread de trabalho do pool execute seu retorno de chamada. Um objeto de trabalho pode ter várias postagens pendentes; cada um gera um retorno de chamada. A operação pós-operação não pode falhar devido à falta de recursos.
- Um objeto timer controla o agendamento de retornos de chamada. Sempre que um temporizador expira, seu retorno de chamada é postado em seu pool de trabalho. A configuração de um temporizador não pode falhar devido à falta de recursos.
- Um objeto de espera faz com que um thread de garçom aguarde em um identificador de espera. Depois que a espera for atendida ou o período de tempo limite expirar, o thread do garçom postará o retorno de chamada dos objetos de espera no pool de trabalho da espera. A configuração de uma espera não pode falhar devido à falta de recursos.
- Um objeto de E/S associa um identificador de arquivo à porta de conclusão de E/S para o pool de threads. Quando uma operação de E/S assíncrona é concluída, um thread de trabalho pega o status da operação e chama o retorno de chamada do objeto de E/S.
A tabela a seguir descreve os recursos das APIs do pool de threads original e atual.
Tópicos relacionados