Ich habe gehört, die sagen können:Energieeffizienz in C während Loops & Polling
while(1){
i = !2;
wait(1);
}
energieeffizient ist. Wird diese While-Schleife bei i != 2
angehalten und wird daher nicht abgefragt? Lassen Sie uns sagen:
while(x == 3){
if(c == 3){
x = 4;
}
wait(1);
}
Enthält diese ein ähnliches Konzept verfolgen oder ist i = !2
eine Prozedur, die erfüllt werden müssen, die while-Schleife weitermachen? Würdest du sagen, dass dies genauso energieeffizient ist? Ist das zweite Beispiel ähnlich dem ersten hinsichtlich der Energieeffizienz?
Ein Beispiel i schlechte Leistung effizient Polling gezeigt habe, ist:
while (x == 3) { }
Ihre erste Schleife wird niemals beendet. Meintest du vielleicht 'while (i) {', möglicherweise? Eigentlich sehe ich auch nicht, wie die anderen beiden enden würden, außer 'x' oder' c' wird von einem anderen Thread modifiziert. –
Warum sollte es bei "i =! 2" aufhören? Das ist nur eine Aufgabe, es passiert sofort. Beide Loops stoppen nur, wenn sie 'wait (1)' bekommen. – Barmar
Ein C-Compiler kümmert sich nicht um "Macht". Ein guter optimierender Compiler verschiebt die Zuweisung in Ihrem ersten Beispiel aus der Schleife. – usr2564301