Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Threads: Wieso gibt's keine InterlockedRead - Funktion?

  Alt 1. Jun 2004, 20:29
aber nicht, wenn beide Threads nur lesend zugreifen, oder? Dann dürfte ja ohnehin kein Fehler eintreten, egal ob ein solcher Lesevorgang jetzt in einem einzigen (atomaren) Arbeitsakt ausgeführt würde oder dieser durch einen event. zweiten Lesevorgang eines anderen Threads unterbrochen werden kann ...weil ja die Variable auch durch diesen zweiten Lesevorgang unverändert bliebe und damit auch das erste Auslesen danach noch ohne Schwierigkeiten bzw. ohne Fehler beendet werden könnte.

Ein Problem bei einem Lesevorgang durch einen Thread1 habe ich doch nur dann, wenn ein solcher quasi irgendwo in der Mitte durch einen anderen Thread2, der nun gerade auf die gleiche Variable schreiben will, unterbrochen werden kann und der damit einen Teil der von Thread1 danach noch fertig zu lesenden Variablen ändert ...was ja bei Thread1 dann schließlich meistens einen falschen End-Wert ergeben dürfte.

Und daher auch nochmal die Frage: Sind Nur-Lesevorgänge bezüglich der Variablen, die sonst über diese Interlocked-Funktionen auch immer mit verändert werden, ...sind die überhaupt unterbrechbar, also nicht atomar? Und wenn ja, warum gibt es dann eigentlich keine InterlockedRead-Funktion. Das wäre doch dann quasi nur das aller logischste überhaupt, oder?
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat