Neuerungen bei der Synchronisierung
Windows enthält die folgenden neuen Programmierelemente für die Synchronisierung.
Windows 8
Neue Funktionen
-
Löscht eine Synchronisierungsbarriere.
-
Bewirkt, dass der aufrufende Thread an einer Synchronisierungsbarriere wartet, bis die maximale Anzahl von Threads die Barriere erreicht hat.
-
Ruft die Ergebnisse eines überlappenden Vorgangs für die angegebene Datei, die benannte Pipe oder das Kommunikationsgerät innerhalb des angegebenen Time out-Intervalls ab. Der aufrufende Thread kann eine warnungsfähige Wartezeit ausführen.
-
Gibt die maximale Anzahl von Threads und die Drehanzahl für eine neue Synchronisierungsbarriere an.
-
Wartet, bis sich der Wert an der angegebenen Adresse ändert.
-
Aktiviert alle Threads, die auf die Änderung des Werts einer Adresse warten.
-
Aktiviert einen Thread, der auf die Änderung des Werts einer Adresse wartet.
Neue interlocked Functions
-
Führt einen atomaren Additionsvorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren Additionsvorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren AND-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren AND-Vorgang für die angegebenen char-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren AND-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren AND-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Testet das angegebene Bit des angegebenen LONG64-Werts und ergänzt es. Der Vorgang ist atomarisch.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt es auf 0 fest. Der Vorgang ist atomar und wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt es auf 0 fest. Der Vorgang ist atomar und wird mithilfe der Semantik der Speicherfreigabe ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt es auf 1 fest. Der Vorgang ist atomar und wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt es auf 1 fest. Der Vorgang ist atomar und wird mit semantischer Reihenfolge des Freigabespeichers ausgeführt.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 32-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 32-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Vorgang wird mit semantischem Abrufen der Speicherreihenfolge ausgeführt.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Austausch erfolgt mit Semantik für die Speicherreihenfolge von Freigaben.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 16-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 16-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 64-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem weiteren 64-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 128-Bit-Werte und austauscht basierend auf dem Ergebnis des Vergleichs mit einem weiteren 128-Bit-Wert.
-
Führt einen atomaren Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene Zeigerwerte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen Zeigerwert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Dekrementiert (verringert sich um eins) den Wert der angegebenen 32-Bit-Variablen als atomarer Vorgang. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Dekrementiert (verringert sich um eins) den Wert der angegebenen 16-Bit-Variablen als atomarer Vorgang.
-
Dekrementiert (verringert sich um eins) den Wert der angegebenen 16-Bit-Variablen als atomarer Vorgang. Der Vorgang wird mit semantischem Abrufen der Speicherreihenfolge ausgeführt.
-
Dekrementiert (verringert sich um eins) den Wert der angegebenen 16-Bit-Variablen als atomarer Vorgang. Der Vorgang wird mit semantischer Reihenfolge des Freigabespeichers ausgeführt.
-
Dekrementiert (verringert sich um eins) den Wert der angegebenen 16-Bit-Variablen als atomarer Vorgang. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Dekrementiert (verringert) den Wert der angegebenen 64-Bit-Variablen als atomare Operation. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Legt eine 64-Bit-Variable als atomaren Vorgang auf den angegebenen Wert fest. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Legt eine 8-Bit-Variable als atomaren Vorgang auf den angegebenen Wert fest.
-
Legt eine 16-Bit-Variable als atomaren Vorgang auf den angegebenen Wert fest. Der Vorgang wird mithilfe der Semantik für die Speicherbestellung ausgeführt.
-
Legt eine 16-Bit-Variable als atomaren Vorgang auf den angegebenen Wert fest. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Legt eine 64-Bit-Variable als atomaren Vorgang auf den angegebenen Wert fest. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Tauscht ein Adresspaar atomisch aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt eine atomare Addition von zwei 32-Bit-Werten aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt eine atomare Addition von zwei 64-Bit-Werten aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Erhöht (um eins) den Wert der angegebenen 32-Bit-Variablen als atomare Operation. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomare Operation.
-
Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomare Operation. Der Vorgang wird mithilfe der Semantik für die Speicherbestellung ausgeführt.
-
Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomare Operation. Der Vorgang wird mithilfe der Semantik für die Freigabespeicherbestellung ausgeführt.
-
Erhöht (um eins) den Wert der angegebenen 16-Bit-Variablen als atomare Operation. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Erhöht (um eins) den Wert der angegebenen 64-Bit-Variablen als atomare Operation. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren OR-Vorgang für die angegebenen char-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Fügt eine singly-linked-Liste am Anfang einer anderen singly linked-Liste ein. Der Zugriff auf die Listen wird auf einem Multiprozessorsystem synchronisiert. Diese Version der -Methode verwendet nicht die _ _ Fastcall-Aufrufkonvention.
-
Führt einen atomaren XOR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren XOR-Vorgang für die angegebenen char-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren XOR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
-
Führt einen atomaren XOR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomisch, aber ohne Verwendung von Speicherbarrieren ausgeführt.
Windows 7
Neue Funktionen
-
Aktiviert den angegebenen wartebaren Timer und stellt Kontextinformationen für den Timer zur Verfügung.
-
Versucht, eine SRW-Sperre (Reader/Writer) im exklusiven Modus zu erhalten. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre.
-
Versucht, eine SRW-Sperre (Reader/Writer) im freigegebenen Modus zu erhalten. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre.
Neue Strukturen
-
Enthält Kontextinformationen für einen Mit SetWaitableTimerEx aktivierten Timer.