Even een taal onafhankelijke vraag waar ik al jaren over aan het nadenken ben; hoe is in hemelsnaam een controle van een verandering technisch mogelijk?
Laten we een simpel voorbeeld nemen;
Je wilt hebben dat er een actie gebeurd op het moment dat de gebruiker op de <ENTER>-toets drukt; dat kan heel simpel met iets van: (even in een voor iedereen (mezelf:p) begrijpelijke programmeer taal).
Dat zou gewoon werken; maar wat ik dan niet snap waarom dit niet alle CPU cycles op vreet
Hij gaat toch de hele tijd door met controleren? En als hij klaar is doet hij dat nogmaals.. en nogmaals. Zo snel mogelijk. Dat gaat dus helemaal fout en kost je al je CPU-kracht.
maar dat lijkt te ondervangen door te zeggen doe deze controle elke 10 ms.
Daar gaat het echter spaak, want om dat te zeggen zal je PC (theoretisch dus) de hele tijd moeten controleren of "Aantal_ms % (modulo) 10 = 0" en op die manier zou hij ook gelijk op 100% CPU zitten. (hij blijft dus controleren of hij al moet controleren)
Ik moet ergens een denk fout maken... Maar waar? Ik zie hem niet. Of zie ik gewoon een feature van een processor over het hoofd?
Laten we een simpel voorbeeld nemen;
Je wilt hebben dat er een actie gebeurd op het moment dat de gebruiker op de <ENTER>-toets drukt; dat kan heel simpel met iets van: (even in een voor iedereen (mezelf:p) begrijpelijke programmeer taal).
code:
1
2
3
4
5
6
| while (true==true) {
if (last_Key_door_User == enter) {
play(poink);
last_Key_door_User = NULL;
}
} |
Dat zou gewoon werken; maar wat ik dan niet snap waarom dit niet alle CPU cycles op vreet
maar dat lijkt te ondervangen door te zeggen doe deze controle elke 10 ms.
Daar gaat het echter spaak, want om dat te zeggen zal je PC (theoretisch dus) de hele tijd moeten controleren of "Aantal_ms % (modulo) 10 = 0" en op die manier zou hij ook gelijk op 100% CPU zitten. (hij blijft dus controleren of hij al moet controleren)
Ik moet ergens een denk fout maken... Maar waar? Ik zie hem niet. Of zie ik gewoon een feature van een processor over het hoofd?