Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Frage zu Critical Section bei Array Zugriff

  Alt 21. Feb 2014, 10:47
Da ich ja nicht auf den selben Array-Eintrag mit zwei verschiedenen Threads zugreife, gibts hier eig. kein Problem oder?
Wenn du das sicherstellen kannst dann brauchst du keine Critical Section.
Du könntest auch jedem Thread eine Kopie der Daten geben (ein Teilarray) und am Ende die Ergebnisse wieder zusammensetzen.
Das ist das Prinzip "Teile und Herrsche".
Wenn jeder Thread nur auf seinen eigenen Daten arbeitet dann kann er keinem anderen Thread in die Quere kommen.
Natürlich geht beim Kopieren von Arrays etwas Performance verloren; dann könnte aber im Vergleich zur Gesamtaufgabe unter einem Promille liegen.
Das Kopieren liese sich aber auch vermeiden, indem jeder Thread die Indexgrenzen (oder Zeiger auf Anfang und Ende) bekommen innerhalb dessen er arbeiten soll.
Das ist ja die Strategie die du z.Zt. verfolgst.
Bei harten Rechenaufgaben wie z.B. FFT sollte man übrigens nur soviele parallele Threads einsetzen wie der Prozessor an Kernen hat.
fork me on Github
  Mit Zitat antworten Zitat