Esta es una pregunta genérica que siempre me he preguntado.
En general, ¿es intensivo para una CPU crear subprocesos que realizan bucles "aunque no sean verdaderos ..." o similares?
Por ejemplo, supongamos que hago:
// pseudo-code
new Thread(function() {
while (!useHasDoneSomething) {
// do nothing...
}
alert("you did something!");
}
Entonces, es solo un fragmento de código que se ejecuta en un hilo que espera que algo suceda.
Por alguna razón, imagino que esto presionaría a la CPU. Después de todo, aunque es solo un pequeño bucle, está volviendo a ejecutar el bucle en el instante en que se realiza un ciclo. ¿No significa esto que está pasando por el ciclo muchas veces por milisegundo? ¿... por nanosegundo?
El sistema operativo "manejará" el programa y los hilos, ¿verdad? Pero eso sigue siendo una gran atención para ejecutar un bucle. Si la CPU no tiene nada más que hacer, ¿no se centraría en ese bucle y consumiría todo el tiempo de inactividad ?
¿Qué pasa si creo 1000 hilos que hacen el mismo bucle? ¿Cómo podría afectar eso el rendimiento / ciclos de CPU?
Además, ¿es así como los eventos funcionan internamente? Cuando está 'escuchando' un evento en Java, .NET, Javascript, etc. (como presionar un botón o cambiar el tamaño de una ventana), ¿se ha creado un hilo que repite?