Prozesse durch Schleifenpausen resourcenschonend?
Verfasst: Dienstag 5. August 2014, 16:59
Hallo,
ich habe mir etwas ausgedacht, zu dem ich gerne etwas wissen würde - also ein abstraktes Modellbeispiel, was ohne großen Code auskommen soll.
Ich schreibe mir eine Klasse mit einer run-Funktion, die ich mit dem Modul threading benutzen kann. Diese Run-Funktion könnte z.B. den Status von irgendetwas abfragen.
while Status != True:
...
Diese while-Schleife würde bis zum Erreichen vom Abbruchkriterium sehr oft ablaufen. Lasse ich jetzt diese while-Schleife z.B. 100mal parallel laufen, dann hat der Prozessor wahrscheinlich ne Menge zu tun. Angenommen, der aktuelle Prozess soll garnicht so oft ablaufen (Polling), sondern nur hin- und wieder mal abgefragt werden - ich würde die while-Schleife einfach durch ein delay pausieren lassen.
while Status != True:
...
time.sleep(0.01)
Was macht der Pythoninterpreter in dieser Zeit? Verbraucht das Warten mittels der Sleep-Funktion auch viel an Ressourcen oder hat dadurch das Betriebssystem die Möglichkeit, inzwischen andere Dinge zu erledigen, die dann flüssiger laufen würden? Es gibt die eine oder andere Programmiersprache, da kann ich dies durch so eine Warten-Funktion erreichen, ich bin mir aber nicht sicher, ob das bei Python auch der Fall ist, darum stelle ich diese Frage hier in dieses Forum mit der Hoffnung, dass ihr mir weiterhelfen könnt.
ich habe mir etwas ausgedacht, zu dem ich gerne etwas wissen würde - also ein abstraktes Modellbeispiel, was ohne großen Code auskommen soll.
Ich schreibe mir eine Klasse mit einer run-Funktion, die ich mit dem Modul threading benutzen kann. Diese Run-Funktion könnte z.B. den Status von irgendetwas abfragen.
while Status != True:
...
Diese while-Schleife würde bis zum Erreichen vom Abbruchkriterium sehr oft ablaufen. Lasse ich jetzt diese while-Schleife z.B. 100mal parallel laufen, dann hat der Prozessor wahrscheinlich ne Menge zu tun. Angenommen, der aktuelle Prozess soll garnicht so oft ablaufen (Polling), sondern nur hin- und wieder mal abgefragt werden - ich würde die while-Schleife einfach durch ein delay pausieren lassen.
while Status != True:
...
time.sleep(0.01)
Was macht der Pythoninterpreter in dieser Zeit? Verbraucht das Warten mittels der Sleep-Funktion auch viel an Ressourcen oder hat dadurch das Betriebssystem die Möglichkeit, inzwischen andere Dinge zu erledigen, die dann flüssiger laufen würden? Es gibt die eine oder andere Programmiersprache, da kann ich dies durch so eine Warten-Funktion erreichen, ich bin mir aber nicht sicher, ob das bei Python auch der Fall ist, darum stelle ich diese Frage hier in dieses Forum mit der Hoffnung, dass ihr mir weiterhelfen könnt.