Zitat von
argonix:
Ja, die probiere ich grade auch aus.
Muss das TCriticalSection-Objekt eine globale variable sein? Oder kann jeder Thread eine eigene Instanz verwenden?
kommt drauf an, wer wo schreibt.
Alle schreibenden Funktionen auf irgendwelche Daten und alle Lesenden Funktionen müssen syncrhonisiert werden.
Auch wenn es nur ein "kleiner" Integer Wert ist.
Weil es passieren kann, dass halbe Daten, und damit ungültige Daten gelesen und geschrieben werden.
Kleine Ausnahme .. booleans kann man auch so schreiben. Die werden mit einem Prozessorbefehl gelesen, da kann man nix falsch machen.
Wenn Du also ein "Datenobject" hast .. was alle schreib und leseaufträge empfängt, dann muss nur dieses eine Object die Daten syncrhonizieren ..
viele Threads dürfen dann dort reinschreiben und müssen selbst gar nix beachten mit der Synchronization, wenn sie über Write und Read Properties, Funktionen Daten dort reinschreiben ..
.. ich hätte Dir gern noch ein schönes Beispiel von mir geschickt, bin mir aber nicht sicher ob das das richtige war.
Wir hatten nämlich auch ein Beispiel, was auf einer 8 Core XEON Cpu versagt hat.
Weiß jetzt nicht, welches das war in dem Ordner.. hmmm
.. nochmal editiert..
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.