É interessante observar que Threads podem ser :
- implementadas no "espaço do usuário":
como no exemplo dado pelo Rodrigo, das threads na linguagem Java, o que siginifica que é a aplicação que mantém a tabela de threads e as gerencia; o sistema operacional não sabe da existência delas, e o escalonador do sistema operacional cuida apenas do processo.
- implementada no núcleo:
a tabela de threads e as próprias threads são mantidas e gerenciadas pelo núcleo do sistema operacional; o escalonador de processos do núcleo cuida dos processos e das threads.
fonte: Sistemas Operacionais Modernos, Tanenbaum, 3ª edição, capítulo 2, seções 2.2.4 e 2.2.5.