API do pool de threads
A interface de programação de aplicativos (API) do pool de threads usa um design baseado em objeto. Cada um dos seguintes objetos é representado por uma estrutura de dados de modo de usuário:
- Um objeto de pool é um conjunto de threads de trabalho que podem ser usados para executar trabalho. Cada processo pode criar vários pools isolados com características diferentes, conforme necessário. Há também um pool padrão para cada processo.
- Um grupo de limpeza está associado a um conjunto de objetos geradores de retorno de chamada. As funções existem para aguardar e liberar todos os objetos que são membros de cada grupo de limpeza. Isso libera o aplicativo de manter o controle de todos os objetos que criou.
- Um objeto de trabalho é atribuído a um pool e, opcionalmente, a um grupo de limpeza. 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 pós-operação não pode falhar por falta de recursos.
- Um objeto de temporizador controla o agendamento de retornos de chamada. Cada vez que um temporizador expira, seu retorno de chamada é postado em seu pool de trabalhadores. A definiçã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 uma alça de espera. Depois que a espera for satisfeita ou o período de tempo limite expirar, o thread do garçom posta o retorno de chamada dos objetos de espera para o pool de trabalhadores da espera. Definir 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 de pool de threads originais e atuais.
Tópicos relacionados