Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Thread Synchronisation

  Alt 22. Aug 2010, 19:29
Es gilt: Gibt es ausschließlich lesenden Zugriff auf einen Speicherbereich, so musst du die Zugriffe nicht synchronisieren. Sobald es aber auch nur einen einzigen schreibenden Zugriff von einem Thread aus auf einen Speicherbereich gibt, so musst du die Zugriffe mit dem schreibenden Thread synchronisieren.

Mit den Atomaren zugriffen würde ich sehr aufpassen, zwar erscheint das Argument, dass der Prozessor den Zugriff auf eine 4-Byte (32-Bit) bzw. 8-Byte (64-Bit) große Variable in einer Instruktion abarbeitet und dabei nicht unterbrochen werden kann schlüssig, jedoch hatte mir diese Annahme aus unerklärlichen Gründen unter Linux einige Probleme beschert, da sie scheinbar nicht immer zutreffend ist. Auch Race-Condition Detektoren wie Helgrind haben mich darauf hingewiesen, dass ich einen "Unsynchronized Read/Write of Size 4" habe.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat