Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#19

AW: Threadunterbrechung - nicht mit suspend

  Alt 7. Mai 2015, 19:52
So, Daniel, Problem (anscheinend) gelöst: Ich habe es mit den CriticalSections wohl doch etwas übertrieben: So umhüllte ich auch synchronize damit. Warum, weiß ich selbst nicht mehr genau, ich probierte eben aus, wie meistens: Nach "Umhüllung" nahezu des gesamten Threadcodes ver- und zerkleinerte ("ziselierte") ich die kritischen Abschnitte soweit, wie es noch stabil blieb, um eine möglichst hohe Gleichzeitigkeit zu ermöglichen - und ja, ich schaute mir dabei natürlich auch an, daß Variablen nicht gleichzeitig lesenden und schreibenden Zugriff durch verschiedene Threads haben könnten, also ganz ohne Verständnis war ich dabei nicht zugange. Synchronize selbst ist aber eine Prozedur, die nach meinem Verständnis exklusiven Zugriff (auf die VCL) benötigt und damit per se als kritisch geschützt sein muß. Vielleicht lief es ohne diese "kritische Umhüllung" nicht stabil genug, jetzt bin ich aber ohne zufrieden.

Es funktioniert jedenfalls jetzt auch unter Windows 7 besser, also spürbar zeitparalleler, und das war mein eigentliches Ziel.

Besten Dank noch einmal an alle, die sich so rührend meiner annahmen!

Ergänzung: Beim parallelen Mergesort komme ich ohne diese kritische Umhüllung des synchronizes jedenfalls leider nicht aus, ist schon merkwürdig.

Ergänzung 2: Man sieht aber sehr schön, daß auch hier nur eine "handverlesene, elitäre Auswahl" an Threads aktiv ist - es werkeln jedenfalls nicht so viele optisch umher, wie m.E. möglich sind.

Geändert von Delphi-Laie ( 7. Mai 2015 um 20:02 Uhr)
  Mit Zitat antworten Zitat