AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Threads: Wie globale Int64-Variable sicher inkrementieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Threads: Wie globale Int64-Variable sicher inkrementieren?

Ein Thema von Dani · begonnen am 4. Aug 2004 · letzter Beitrag vom 3. Mär 2012
Antwort Antwort
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Threads: Wie globale Int64-Variable sicher inkrementiere

  Alt 4. Aug 2004, 15:47
In diesem Thread schreibt Luckie:

Zitat von Luckie:
Zitat:
BeginThread setzt die globale Variable IsMultiThread auf True und macht so Zugriffe auf den Heap so threadsafe
Zitat von Luckie:
Der Heap ist ein Speicherbereich im Adressraum des Prozesses, wie der Stack auch, nur dass er etwas anders organisiert ist. Wenn ich jetzt eine multithread Anwendung habe und ein Thread schreibt etwas in den Heap und ein anderer Thread liest gerade zufälligerweise an der gleichen Adresse, kann es passieren, dass der lesende Thread die Daten in einem inkonsistenten Zustand vor findet. Threadsafe bedeutet hier, dass jegliche Zugriffe auf den Heap atomare Operationen sind. Das heißt, wenn ein Thread auf den Heap zugreift, ist er für andere gesperrt.
Zitat von Chewie:
Welche Daten sind denn im Heap abgelegt?
Zitat von Luckie:
Globale Variablen zum Beispiel
Wenn das stimmt, dann ist jeder Zugriff eines TThread-Nachfahren auf globale Variablen ohne weiteres Zutun threadsafe.

Wegen der threadvars: Wenn ich die Variablen so deklariere:

Delphi-Quellcode:
threadvar
  TotalBytesRec : Int64;
  LastTotalBytesRec : Int64;
dann bleibt jeder Schreibzugriff aus den Threads heraus wirkungslos. Ich muss da irgendwas falsch verstanden haben.

Gruß,
Dani
Dani H.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:50 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