Einzelnen Beitrag anzeigen

TStringlist

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

Threads: Wieso gibt's keine InterlockedRead - Funktion?

  Alt 1. Jun 2004, 11:35
Hallo,

bei einem kleinen Trip durchs Thema 'Threads' bin ich gerade bei den Interlocked-Funktionen angekommen ...und hätte da jetzt mal folgende kurze Frage: Warum gibt es hier eigentlich keine derartige Funktion mit der man eine von mehreren Threads gleichzeitig genutzte Variable einfach nur Auslesen kann, ...also ohne sie auch jedesmal immer mit verändern zu müssen.

Es fällt nämlich auf, dass diese Interlocked-Funktionen den Wert der jeweiligen Variablen immer auch mit verändern. ...Was vielleicht auch wiederum heißen könnte, dass für das nur Lesen einer solchen Variablen deswegen eigentlich auch gar keine Interlocked-Funktion notwendig ist? ...und zwar deswegen, weil ein Thread fürs Schreiben einer Variablen bis zum Schreibende dann jeweils ununterbrochen durcharbeiten darf und somit eh immer gefahrlos gelesen werden kann?


Weiß hier irgendjemand eventuell genaueres?

Thx im Voraus


PS. Denkbare Situationen in denen das nützlich wäre, gibt's ja auch genug, ...z.B. solche, in denen ein quasi 'WatchDog'-Thread die Arbeit anderer Threads überwacht, und zwar eben durch das nur Auslesen (ohne Änderung!) von z.B. kontinuierlich anwachsenden Variablewerte mit denen diese anderen Threads dann auch normal weiterzuarbeiten hätten...

PPS. Jetzt mal InterlockedCompareExchange ausgenommen, mit der man sich ja so eine Abfrage (ohne gleichzeitig Änderung der abzufragenden Variablen) auch zur Not noch selbst herbeikonstruieren könnte, die dafür aber bestimmt nicht gedacht ist, oder?
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat