Einzelnen Beitrag anzeigen

tobias_sdr

Registriert seit: 7. Apr 2009
3 Beiträge
 
#1

Berechnungs-Threads die lesend auf Dynamische Arrays zugreif

  Alt 12. Mai 2009, 21:39
Hallo alle miteinander,

ich habe folgendes Problem und benötige zur Lösung eure Hilfe.

Ich fülle einen TCollection mit "Jobs"; sprich jedes Item der TCollection besitzt die Parameter, mit denen dann ein Thread seine Berechnungen durchführen soll. Sprich mein Hauptthread legt den Pool an und befüllt diesen auch. Gleichzeitig über WaitForSingleObject(aJobList.Semaphore, INFINITE) prüfen die anderen Threads, ob in dem Pool Jobs sind. Sind welche vorhanden, soll sich jeder einen nehmen und berechnen, solange bis der Pool leer ist. In dieser Zeit soll der Hauptthread nach Beendigung des Füllens auf die Abarbeitung der Jobs und die Beendigung der Berechnung warten. Die Threads sollen aktiv bleiben.

Die Threads greifen während ihrer Berechnung lesend auf eine gemeinsame Datenstrucktur aus Dynamischen Arrays zu, die nur von dem Hauptthread beschrieben wird nachdem der Pool leer ist und die Threads fertig sind. Ich habe hier im Forum gelesen, dass Dynamische Arrays zu Problemen führen können. Leider weiß ich nicht, wie ich das umgehen soll. Eine Syncronisierung jedes Zugriffes würde doch wahrscheinlich zur Verlangsamung des Programms führen, oder?


Woran kann das liegen?
  Mit Zitat antworten Zitat