Essa é uma pergunta genérica que eu sempre quis saber.
Em geral, é intensivo para uma CPU criar threads que executam loops "embora não sejam verdadeiros ..." ou similares?
Por exemplo, suponha que eu faça:
// pseudo-code
new Thread(function() {
while (!useHasDoneSomething) {
// do nothing...
}
alert("you did something!");
}
Portanto, é apenas um pedaço de código executado em um encadeamento que espera que algo aconteça.
Por alguma razão, imagino que isso pressionaria a CPU. Afinal, mesmo que seja apenas um pequeno loop, ele é executado novamente no instante em que um ciclo é concluído. Isso não significa que ele está passando pelo ciclo muitas vezes por milissegundo? ... Por nanossegundo !?
O sistema operacional "manipula" o programa e os threads, certo? Mas isso ainda dá muita atenção à execução de um loop. Se a CPU não tiver mais nada a fazer, ela não se concentrará apenas nesse loop, consumindo , assim, todo o tempo ocioso ?
E se eu criar 1000 threads que todos façam o mesmo loop? Como isso pode afetar os ciclos de desempenho / CPU?
Além disso, é assim que os eventos funcionam internamente? Quando você está 'ouvindo' um evento em Java, .NET, Javascript etc. (como pressionar um botão ou redimensionar uma janela), foi criado um encadeamento em loop?