Modelo de Threads em Java (1:1, N:1 ou N:M ?)

Alguém saberia me dizer qual o modelo de implementação de threads em Java (Linux e Windows)?

Encontrei algumas documentações dizendo que são somente à nivel de usuário (N:1) e outras dizendo que em ambiente Windows são sempre de núcleo (1:1)…

Documentação (realmente!!!) técnica sobre o assunto tbém ajuda… Tutoriais de implementação de threads não chegam neste nível de detalhe.

Grato,
MLP.

Em ambiente Windows são sempre 1 thread do Java para 1 thread do Windows, e em ambiente Linux também são 1 thread do Java para 1 thread do Linux.
(Talvez o Java 1.0 usasse “green threads”, ou seja, N threads do Java = 1 thread do Windows, mas eu não tenho um Java 1.0 aqui para testar.)
O que pode estar dando confusão é que dependendo da sua versão do kernel do Linux você pode ter 1 thread = 1 processo no Linux, ou N threads = 1 processo.

Obrigado pela rápida resposta. Estava quase partindo para multiprogramação pesada, apesar de todo ônus dessa abordagem.

As primeiras versões do Java (1.1, 1.2 no maximo) usavam 1:1 / Green Threading. Demorou um pouco pra sair deste modelo, em particular no Linux, que chegava a possuir dois binários (java e java_g) em função disso.

Eis um bom overview sobre o assunto

Só para não ficar dúvida para quem lê: Green threads são threads “user level”, portanto N:1. Modelo 1:1 são threads “kernel level”. Pelo que li (e ainda estou lendo) sobre o assunto, atualmente Java provê no Win/Linux 1:1 mesmo, como comentado por thingol.