Em outras palavras, quais são as vantagens do encadeamento híbrido sobre o encadeamento 1: 1 (somente kernel) e N: 1 (somente usuário)?
Esta é uma continuação de Qual é a diferença entre os threads no nível do usuário e os do nível do kernel?
Em outras palavras, quais são as vantagens do encadeamento híbrido sobre o encadeamento 1: 1 (somente kernel) e N: 1 (somente usuário)?
Esta é uma continuação de Qual é a diferença entre os threads no nível do usuário e os do nível do kernel?
Respostas:
Eu acho que a segmentação híbrida é muito semelhante a um pool de threads .
No conjunto de encadeamentos, você está usando
A vantagem sobre a segmentação apenas pelo usuário é que você pode tirar proveito de várias CPUs ou múltiplos núcleos de CPU. E se uma tarefa bloquear, você poderá criar outro thread do kernel para usar a CPU disponível com mais eficiência.
Portanto, você obtém as vantagens de ambas as abordagens, às custas de algum agendamento adicional no modo de usuário.
Uma desvantagem em relação ao agendamento apenas do kernel é a latência possivelmente maior: se todos os encadeamentos no pool estiverem ocupados e você adicionar uma nova tarefa curta, poderá esperar um longo tempo antes de iniciar a execução.