Questa è una domanda generica che mi sono sempre chiesto.
In generale, è intensa per una CPU creare thread che eseguono cicli "while not vero ..." o simili?
Ad esempio, supponiamo di farlo:
// pseudo-code
new Thread(function() {
while (!useHasDoneSomething) {
// do nothing...
}
alert("you did something!");
}
Quindi è solo un pezzo di codice che viene eseguito in un thread che aspetta che succeda qualcosa.
Per qualsiasi motivo, immagino che ciò provochi una pressione sulla CPU. Dopotutto, anche se è solo un piccolo ciclo, sta eseguendo nuovamente il ciclo nell'istante in cui termina un ciclo. Questo non significa che sta attraversando il ciclo molte volte al millisecondo? ... Per nanosecondo!?
Il sistema operativo "gestirà" il programma e il / i thread / i, giusto? Ma questa è ancora un'attenzione terribile per l'esecuzione di un ciclo. Se la CPU non ha altro da fare, non dovrebbe concentrarsi solo su quel ciclo, quindi consumare tutto il tempo di inattività ?
Cosa succede se creo 1000 thread che fanno tutti lo stesso ciclo? In che modo ciò influisce sui cicli delle prestazioni / della CPU?
Inoltre, questo è il modo in cui eventi funziona internamente? Quando stai "ascoltando" un evento in Java, .NET, Javascript ecc. (Come un pulsante o un ridimensionamento della finestra), è stato creato un thread che è stato creato?