Forum: Programmieren allgemein
by Manfred D2009,
19. Jun 2012
Ja, genau das war (hoffentlich) mein Problem...
Ich verwende jetzt Semaphore, habe das nur etwas salopp formuliert.
Forum: Programmieren allgemein
by Manfred D2009,
19. Jun 2012
Nach der letzten Anregung und etwas grübeln habe ich folgende Lösung integriert:
- jeder Thread erhält ein Signal
- statt den einfachen Sleep-Aufrufen wartet ein Thread nun auf das Signal oder eine bestimmte Zeit (ähnlich wie beim Sleep). Die "Wait"-Zeit habe ich höher gesetzt als bei den Sleep-Aufrufen, damit gibt es weniger Blockaden durch synchronisierte Abschnitte.
- Ist der Hauptthread...
Forum: Programmieren allgemein
by Manfred D2009,
15. Jun 2012
Wenn die Tuning-Probleme nicht wären, dann wär´s sehr, sehr gut!:thumb:
Dein Ansatz mit einer threadsicheren Queue gefällt mir auf den ersten Blick richtig gut, das werde ich auf alle Fälle weiterverfolgen und ausprobieren!
Was ich noch nicht ganz verstanden habe: Wie meinst du das mit "Thread soll niedrig priorisierten Message an den Hauptthread schicken"? Gibt es eine Möglichkeit...
Forum: Programmieren allgemein
by Manfred D2009,
15. Jun 2012
Mir ist wie euch allen klar, das man auf diese sync. Abschnitte so gut es geht verzichten sollte und es wäre auch in meinem Sinn die Threads als BlackBox zu deklarieren und diese mit allem zu versorgen, was nötig ist (mache ich bereits zu einem größtmöglichen Teil). Allerdings muss Aufwand/Nutzen betrachtet werden und was bei der Threadentwicklung sehr schnell problematisch wird, wenn...
Forum: Programmieren allgemein
by Manfred D2009,
15. Jun 2012
@BUG:
Du hast recht, dass ich sehr häufig kleine synchronisierte Abschnitte lostrete. CriticalSections helfen zwar, die sync. Abschnitte zu verkleinern, aber auch in die threadsicheren Abschnitte darf trotzdem nur ein Prozess rein.
Und das Hauptproblem ist wohl, wie du sagst, dass auf einem Multicore-Rechner die Idle-Threads ja idle sind und deshalb weitermachen, ihre sync. Aufrufe...