AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Threadsynchronisation

Offene Frage von "blablab"
Ein Thema von blablab · begonnen am 22. Mär 2009 · letzter Beitrag vom 22. Mär 2009
 
jbg

Registriert seit: 12. Jun 2002
3.485 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Threadsicherheit

  Alt 22. Mär 2009, 18:25
Zitat von blablab:
Der integer wird doch in einem Schritt hingeschrieben und nicht erst die erste hälte und dann die zweite hälfte des integers. wie kann dann da n fehler auftreten?
Wenn der Integer auf einer durch 4 Byte teilbaren Speicheradresse liegt, dann klappt das schon. Tut er das aber nicht, dann braucht der Befehl zwei RAM Zugriffe zum lesen. Und dazwischen ist es möglich, dass eine zweite CPU den zweiten Teil des Integers gerade neu beschreibt und man am Schluss ein Mischmasch aus altem und neuem Wert hat. (nur mal so als Beispiel)

Für Integer-Variablen braucht man aber nicht gleich zu Synchronize greifen. Hierfür gibt es die Interlock-Funktionen. InterlockIncrement, InterlockDecrement, InterlockExchange (kann man für die Zuweisung "misbrauchen"), ...
Des weiteren gibt es noch CriticalSections. Nur wenn man irgendwas mit der VCL (TForm, TControl, ...) anstellt ist der Weg über Synchronize notwendig, weil sämtliche Zugriffe auf Window-Handles, dank der Thread-Affinität, im Hauptthread/VCL-Thread auszuführen sind.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz