Nyheter i synkronisering
Windows innehåller följande nya programmeringselement för synkronisering.
Windows 8
Nya funktioner
-
Tar bort en synkroniseringsbarriär.
-
Gör att den anropande tråden väntar vid en synkroniseringsbarriär tills det maximala antalet trådar har gått in i barriären.
-
Hämtar resultatet av en överlappande åtgärd på den angivna filen, namngiven pipe eller kommunikationsenhet inom det angivna tidsgränsintervallet. Den anropande tråden kan utföra en aviseringsbar väntan.
-
Anger det maximala antalet trådar och antal spinn för en ny synkroniseringsbarriär.
-
Väntar på att värdet på den angivna adressen ska ändras.
-
Aktiverar alla trådar som väntar på att värdet för en adress ska ändras.
-
Aktiverar en tråd som väntar på att värdet för en adress ska ändras.
Nya sammankopplade funktioner
-
Utför en atomisk additionsåtgärd på angivna LONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk additionsåtgärd på angivna LONGLONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk AND-åtgärd på angivna LONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk AND-åtgärd på angivna tecken värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk AND-åtgärd på angivna SHORT- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk AND-åtgärd på angivna LONGLONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Testar den angivna biten av det angivna värdet LONG64 och kompletterar det. Åtgärden är atomisk.
-
Testar den angivna biten av det angivna värdet LONG och anger det till 0. Åtgärden är atomisk och utförs med hämtad minnesordningssemantik.
-
Testar den angivna biten av det angivna värdet LONG och anger det till 0. Åtgärden är atomisk och utförs med minnesfrisläppningssemantik.
-
Testar den angivna biten av det angivna värdet LONG och anger det till 1. Åtgärden är atomisk och utförs med hämtad minnesordningssemantik.
-
Testar den angivna biten av det angivna värdet LONG och anger det till 1. Åtgärden är atomisk och utförs med en release-minnesordningssemantik.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 32-bitarsvärden och utbyter med ett annat 32-bitarsvärde baserat på resultatet av jämförelsen. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 16-bitarsvärden och utbyter med ett annat 16-bitarsvärde baserat på resultatet av jämförelsen.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 16-bitarsvärden och utbyter med ett annat 16-bitarsvärde baserat på resultatet av jämförelsen. Åtgärden utförs med hämta minnesordningssemantik.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 16-bitarsvärden och utbyter med ett annat 16-bitarsvärde baserat på resultatet av jämförelsen. Utbytet utförs med versionsminnesordningssemantik.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 16-bitarsvärden och utbyter med ett annat 16-bitarsvärde baserat på resultatet av jämförelsen. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 64-bitarsvärden och utbyter med ett annat 64-bitarsvärde baserat på resultatet av jämförelsen. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna 128-bitarsvärden och utbyter med ytterligare ett 128-bitarsvärde baserat på resultatet av jämförelsen.
-
Utför en atomisk jämförelse- och utbytesåtgärd på de angivna värdena. Funktionen jämför två angivna pekarvärden och utbyten med ett annat pekarvärde baserat på resultatet av jämförelsen. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Decrementerar värdet för den angivna 32-bitarsvariabeln som en atomär operation. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Minskar värdet på den angivna 16-bitarsvariabeln med ett som en atomisk operation.
-
Minskar värdet på den angivna 16-bitarsvariabeln med ett som en atomär operation. Åtgärden utförs med hämta minnesordningssemantik.
-
Minskar värdet för den angivna 16-bitarsvariabeln som en atomisk operation. Åtgärden utförs med versionsminnesordningssemantik.
-
Minskar värdet för den angivna 16-bitarsvariabeln som en atomisk operation. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Minskar (minskar med ett) värdet för den angivna 64-bitarsvariabeln som en atomär operation. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Anger en 64-bitarsvariabel till det angivna värdet som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Anger en 8-bitarsvariabel till det angivna värdet som en atomisk åtgärd.
-
Anger en 16-bitars variabel till det angivna värdet som en atomisk åtgärd. Åtgärden utförs med hjälp av hämta minnesordningssemantik.
-
Anger en 16-bitars variabel till det angivna värdet som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Anger en 64-bitarsvariabel till det angivna värdet som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Atomiskt utbyter ett par adresser. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk addition av två 32-bitarsvärden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk addition av två 64-bitarsvärden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Ökar (ökar med en) värdet för den angivna 32-bitarsvariabeln som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Ökar (ökar med en) värdet för den angivna 16-bitarsvariabeln som en atomisk åtgärd.
-
Ökar (ökar med en) värdet för den angivna 16-bitarsvariabeln som en atomisk åtgärd. Åtgärden utförs med hjälp av hämta minnesordningssemantik.
-
Ökar (ökar med en) värdet för den angivna 16-bitarsvariabeln som en atomisk åtgärd. Åtgärden utförs med hjälp av versionsminnesordningssemantik.
-
Ökar (ökar med en) värdet för den angivna 16-bitarsvariabeln som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Ökar (ökar med en) värdet för den angivna 64-bitarsvariabeln som en atomisk åtgärd. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk ELLER-åtgärd på angivna LONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk OR-åtgärd på angivna tecken värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk ELLER-åtgärd på angivna SHORT- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk ELLER-åtgärd på angivna LONGLONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Infogar en enkel-länkad lista i början av en annan enkel-länkad lista. Åtkomsten till listorna synkroniseras i ett system med flera processorer. Den här versionen av metoden använder inte __fastcall-anropskonventionen.
-
Utför en atomisk XOR-åtgärd på angivna LONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk XOR-åtgärd på angivna tecken värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk XOR-åtgärd på angivna SHORT- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
-
Utför en atomisk XOR-åtgärd på de angivna LONGLONG- värden. Åtgärden utförs atomiskt, men utan minnesbarriärer.
Windows 7
Nya funktioner
-
Aktiverar den angivna väntetidstimern och ger kontextinformation för timern.
-
Försöker skaffa sig ett SRW-lås (Slim Reader/Writer) i exklusivt läge. Om anropet lyckas tar den anropande tråden över ägarskapet för låset.
-
Försöker erhålla ett Slim Reader/Writer-lås (SRW) i delat läge. Om anropet lyckas tar den anropande tråden över ägarskapet för låset.
Nya strukturer
-
Innehåller kontextinformation för en timer som aktiveras med SetWaitableTimerEx.