Einzelnen Beitrag anzeigen

Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#1

Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?

  Alt 18. Jul 2008, 11:18
Hallo,

ich habe mittlerweile ein grösseres Programm "fertig", mit einigen Threads. Einer holt Daten von der Messkarte, einer überprüft auf Eingaben , einer macht Datenauswertung und ein anderer Datenausgabe.
Ist also alles recht übersichtlich, objektorientiert, threadgelagert usw.
DatenHolen hat Prio mittel (z.Zt. kein sleep), Eingabe mittel (mit grösserem sleep), Auswertung mittel (mit sleep) und Ausgabe low (mit kleinem sleep)

Nun mein Problem: Der DatenHol-Thread braucht 1.3 ms für einen Durchlauf. Das ist soweit OK, er könnte auch etwas langsamer sein. Er muss sogar etwas langsamer sein, da der Ausgabethread fast nie dran kommt. Ich dachte dabei an ein sleep(1).
Aber damit braucht er nicht die (im Kopf errechneten 2.3 ms, sondern etwas über 7 ms ! Das ist wieder zu langsam...

Ich denke am dll-Aufruf vom sleep wird es nicht liegen, da der Thread mit einem sleep(0) auch nur etwas um 1.3ms braucht.
Ich bin echt kurz vor dem Verzweifeln: Alles fertig, und jetzt kann ich den einen nicht vom Prozessorkern vertreiben !

Hat jemand von euch Erfahrung mit dem Problem, kennt eine Alternative oder hat vielleicht sogar eine sleep(1)-dll ?

Vielen Dank schon mal im Vorraus !
  Mit Zitat antworten Zitat