Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#12

AW: Rückgabewert von Threads

  Alt 7. Sep 2011, 14:42
Delphi-Quellcode:
procedure OnThreadTerminate;
begin
  Dec(ActiveThreads); // Anzahl laufender Threads anpassen
  if ActiveThreads = 0 then // falls das der letzte von den 4 Threads war...
    StartThreads; // ...nächsten 4 Threads starten
end;
So schaut das aber noch stark nach Race Condition aus. Problem ist, dass das Dekrementieren von ActiveThreads nicht atomar ist. Wenn jetzt mehrere Threads "gleichzeitig" fertig werden und "gleichzeitig" das Dekrementieren ausführen, kann es passieren, dass ActiveThreads nie 0 wird...
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat