Variable als Flag zur Threadsicherheit
Verfasst: 24.01.2007 22:31
Guten Abend.
Ich brauche um keine Probleme beim Zugriff auf Daten zu haben ein Flag, auf das mehrere Threads gleichzeitig zugreifen könnten. Mutex möchte ich nicht nehmen, da ich die mir dir Rechenzeit dafür einsparen will bzw, die anderen Threads auch nicht stoppen sollten.
Ich belege nun eine Variable / Struktur (Byte, Word oder Long) mit einem Wert, dieser soll nur jeweils um einen Wert hoch oder runtergezählt werden.
Im Grunde geht es darum, wieviele Threads gleichzeitig einen bestimmten Bereich bearbeiten, gleichzeitige bearbeitung ist erlaubt. Also kann es auch sein das Variable flag.b gleichzeitig von zwei Threads hochgezählt wird, da mache ich mit
b + 1 bzw. b - 1
Da ich ja nur einen kurzen Befehl nutze, dürfte es doch keine Probleme geben, oder?
Mir geht es darum, ob der Prozessor oder so einen fehler machen könnte wenn zwei Threads gleichzeitig eine Variable hochzählen, also z.B.
wenn zwei Threads gleichzeitg b +1 nutzen, nicht 2 sondern nur 1 rauskomme.
Dürfte soweit ich hier gelesen habe nicht passieren, wollte nur sicher gehen.
Gruß
Toshy
Ich brauche um keine Probleme beim Zugriff auf Daten zu haben ein Flag, auf das mehrere Threads gleichzeitig zugreifen könnten. Mutex möchte ich nicht nehmen, da ich die mir dir Rechenzeit dafür einsparen will bzw, die anderen Threads auch nicht stoppen sollten.
Ich belege nun eine Variable / Struktur (Byte, Word oder Long) mit einem Wert, dieser soll nur jeweils um einen Wert hoch oder runtergezählt werden.
Im Grunde geht es darum, wieviele Threads gleichzeitig einen bestimmten Bereich bearbeiten, gleichzeitige bearbeitung ist erlaubt. Also kann es auch sein das Variable flag.b gleichzeitig von zwei Threads hochgezählt wird, da mache ich mit
b + 1 bzw. b - 1
Da ich ja nur einen kurzen Befehl nutze, dürfte es doch keine Probleme geben, oder?
Mir geht es darum, ob der Prozessor oder so einen fehler machen könnte wenn zwei Threads gleichzeitig eine Variable hochzählen, also z.B.
wenn zwei Threads gleichzeitg b +1 nutzen, nicht 2 sondern nur 1 rauskomme.
Dürfte soweit ich hier gelesen habe nicht passieren, wollte nur sicher gehen.
Gruß
Toshy