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 betreten hat.
-
Ruft die Ergebnisse eines überlappenden Vorgangs für die angegebene Datei, named pipe oder das angegebene Kommunikationsgerät innerhalb des angegebenen Timeoutintervalls ab. Der aufrufende Thread kann eine warnbare Wartezeit ausführen.
-
Gibt die maximale Anzahl von Threads und die Anzahl der Drehvorgänge für eine neue Synchronisierungsbarriere an.
-
Wartet, bis sich der Wert an der angegebenen Adresse ändert.
-
Aktiviert alle Threads, die darauf warten, dass sich der Wert einer Adresse ändert.
-
Aktiviert einen Thread, der darauf wartet, dass sich der Wert einer Adresse ändert.
Neue ineinandergreifene Funktionen
-
Führt einen atomischen Additionsvorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomischen 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 Zeichenwerte 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 ihn. Der Vorgang ist atomarisch.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 0 fest. Der Vorgang ist atomar und wird mit der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 0 fest. Der Vorgang ist atomar und wird mithilfe der Speicherfreigabesemantik ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 1 fest. Der Vorgang ist atomar und wird mit der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
-
Testet das angegebene Bit des angegebenen LONG-Werts und legt ihn auf 1 fest. Der Vorgang ist atomar und wird mit semantischer Speicherreihenfolge ausgeführt.
-
Führt einen atomischen 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 atomischen 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 atomischen 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 der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
-
Führt einen atomischen 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 wird mit semantischer Speicherreihenfolge durchgeführt.
-
Führt einen atomischen 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 atomischen 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 anderen 64-Bit-Wert aus. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Führt einen atomischen Vergleichs- und Austauschvorgang für die angegebenen Werte aus. Die Funktion vergleicht zwei angegebene 128-Bit-Werte und tauscht basierend auf dem Ergebnis des Vergleichs mit einem anderen 128-Bit-Wert aus.
-
Führt einen atomischen 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.
-
Verringert (verringert) den Wert der angegebenen 32-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Verringert (verringert) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang.
-
Verringert (verringert) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mit der Semantik zum Abrufen der Speicherreihenfolge ausgeführt.
-
Verringert (verringert) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird mit semantischer Speicherreihenfolge ausgeführt.
-
Verringert (verringert) den Wert der angegebenen 16-Bit-Variablen als atomischen Vorgang. Der Vorgang wird atomar ausgeführt, jedoch ohne Speicherbarrieren.
-
Dekrementiert den Wert der angegebenen 64-Bit-Variablen als atomarer Vorgang( verringert) um eins. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Legt eine 64-Bit-Variable auf den angegebenen Wert als atomaren Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Legt eine 8-Bit-Variable auf den angegebenen Wert als atomaren Vorgang fest.
-
Legt eine 16-Bit-Variable auf den angegebenen Wert als atomaren Vorgang fest. Der Vorgang wird mit der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
-
Legt eine 16-Bit-Variable auf den angegebenen Wert als atomaren Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Legt eine 64-Bit-Variable auf den angegebenen Wert als atomaren Vorgang fest. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Atomar tauscht ein Adresspaar aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt eine atomare Addition von zwei 32-Bit-Werten aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt eine atomare Addition von zwei 64-Bit-Werten aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Inkrementiert (erhöht) den Wert der angegebenen 32-Bit-Variable als atomaren Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Inkrementiert (erhöht um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang.
-
Inkrementiert (erhöht um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird mit der Semantik zum Abrufen von Speicherreihenfolgen ausgeführt.
-
Inkrementiert (erhöht um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird mithilfe der Semantik der Freigabespeicherreihenfolge ausgeführt.
-
Inkrementiert (erhöht um eins) den Wert der angegebenen 16-Bit-Variablen als atomaren Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Erhöht (erhöht) den Wert der angegebenen 64-Bit-Variablen als atomaren Vorgang. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren OR-Vorgang für die angegebenen LONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren OR-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren OR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren OR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Fügt eine singly-verknüpfte Liste an der Vorderseite einer anderen singly verknüpften 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 atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren XOR-Vorgang für die angegebenen Zeichenwerte aus . Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren XOR-Vorgang für die angegebenen SHORT-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
-
Führt einen atomaren XOR-Vorgang für die angegebenen LONGLONG-Werte aus. Der Vorgang wird atomar ausgeführt, aber ohne Speicherbarrieren zu verwenden.
Windows 7
Neue Funktionen
-
Aktiviert den angegebenen wartebaren Timer und stellt Kontextinformationen für den Timer bereit.
-
Versucht, eine SRW-Sperre (Slim Reader/Writer) im exklusiven Modus zu erhalten. Wenn der Aufruf erfolgreich ist, übernimmt der aufrufende Thread den Besitz der Sperre.
-
Versucht, eine SRW-Sperre (Slim 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 Timer, der mit SetWaitableTimerEx aktiviert wurde.