Tópicos leves, médios e pesados

Na programação do computador, um tópico é uma instância de uma seqüência de código que está operando como uma unidade, normalmente em nome de um único usuário, transação ou mensagem. As threads são às vezes descritas em termos de seu peso, significando quanta informação contextual deve ser salva para uma dada thread para que ela possa ser referenciada pelo sistema durante a vida da thread.

Por exemplo, o contexto de um processo UNIX inclui o registro de hardware , a pilha do kernel , a pilha de nível de usuário, e assim por diante. O tempo necessário para mudar esse contexto, em milhares de microssegundos, é considerado grande, então um processo UNIX é dito ser uma thread.

Em alguns kernels de sistemas operacionais modernos, como Mach , podem existir várias threads em um único espaço de endereço , o que diminui a quantidade de contexto que deve ser salva com cada uma, e reduz o tempo de mudança para centenas de microssegundos. Estas threads em nível de kernel são consideradas como threads de peso médio.

Quando todas as operações de contexto e thread são expostas ao nível do usuário, cada aplicação precisa apenas da quantidade mínima de contexto salvo com ela, de modo que a comutação de contexto pode ser reduzida para dezenas de microssegundos. Portanto, as roscas a nível de usuário são consideradas roscas leves.