Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Wie kann man das Ausführen der Threads Priorisieren

  Alt 25. Mär 2014, 23:25
Ähm, er hat nicht berichtet, dass sein System eingefroren ist, und das wäre der Fall, wenn 100 Threads die volle Aufmerksamkeit der CPU beanspruchen würden.

Können die auch gar nicht, da alle Threads in eine Liste schreiben wollen und das können die nun mal nicht gleichzeitig. Also sind 99 Threads am Warten und 1 Thread am Schreiben.
Dafür habe ich ja auch eine Lösung genannt (eine andere als du): Pro Thread eine separate Liste (bzw. Queue). Natürlich muss man sich irgendwas überlegen, damit die zu „schnellen“ Threads nicht den kompletten Speicher zumüllen, weil der Main-Thread nicht dazu kommt, die Queue schnell genug abzuarbeiten. Aber was man da am besten macht, kommt auf die Anwendung an. Man könnte z.B. ein Limit an Einträgen setzen, und wenn das Limit erreicht ist, dann wartet der schreibende Thread, bis wieder ein Eintrag frei wird (dein Vorschlag ist sozusagen ein Spezialfall davon – Limit von genau einem Eintrag), oder der älteste Eintrag wird überschrieben o.ä..

Ich meine nur, das ist ein ganz anderes Problem als das Problem, dass der Main-Thread nur in sehr großen Abständen mal eine Zeitscheibe abbekommt. Es sind zwei verschiedene Probleme.
  Mit Zitat antworten Zitat