Concorrência e paralelismo é um assundo que eu gosto muito, e o aqui se encontra um verdadeiro conteúdo sobre threads...
E não poderia sair sem dá 1 centavo de contribuição...
Além desses modos de threads aboradados acima paralelismo, green threads e ambos. Tem a "thread" cooperativa, que é gerenciada completamente pelo dev final... são os yield.
lua é uma linguagem que utiliza por baixo dos panos e tem também Euphoria(veja aqui o multitasking) que também trabalhar com threads cooperativas.
Embora C#(exemplo...) use yield também, mas não é com intuito de threads, mas como enumeradores(exemplo de uso), para ter cargas de CPU sobre demanda, diminuindo uso desnecessário.
Basicamente é como uma greend thread funciona, porém quem decide quando fazer o context switch, é o dev.
O mais importante a dizer é que para cada cenário existe uma forma de thread, que se encaixa melhor que outra.