Registriert seit: 1. Dez 2003
360 Beiträge
Turbo Delphi für Win32
|
Re: Threads: Wieso gibt's keine InterlockedRead - Funktion?
1. Jun 2004, 17:22
@Meflin
woher weiß aber der Thread (der der jetzt schreiben möchte), dass ein anderer gerade liest, wenn dieser andere das wiederum nicht durch das Benutzen irgendeiner dieser speziellen Funktionen (oder sonst irgendwie) bekannt gemacht hat?
@woki
...und wann ist ein Lesevorgang atomar?
In meinem Fall ging ich bei der so 'WatchDog-Thread'-mäßig jeweils zu prüfende Variablen von einer einfache Integergröße aus. Wäre das noch ein atomarer Lesevorgang? Wann ist ein solcher Lesevorgang atomar? Wenn er sich in nur einen einzigen (in solchen Fällen immer benutzten) Assembler-Befehl übersetzen lässt?
Beim Lesen komplexer (also nicht-atomarer?) Daten, wie z.B. Records o.ä., ist das schon eher nachvollziehbar. Aber die könnte man ja mit so einer Interlocked-Funktion auch ebenfalls nicht schreiben. Dafür bräuchte man, ob fürs Lesen oder Schreiben, sowieso eher eine Critical Section?
@Alle
Könnte man sagen: Für alle Variablen, die ich über die Interlocked-Funktionen verändern kann (wenn ich das wollen würde), brauche ich, wenn ich die jetzt aber einfach nur auslesen möchte, keine Absicherung? ...weil ein Lesen in diesen Fällen event. immer atomar wäre?
MfG (& Thx ggf.)
|