同期の新機能
Windows には、同期用の次の新しいプログラミング要素が含まれています。
Windows 8
新しい関数
-
同期バリアを削除します。
-
呼び出し元のスレッドが同期バリアで待機し、スレッドの最大数がバリアに入るまで待機します。
-
指定したタイムアウト間隔内で、指定したファイル、名前付きパイプ、または通信デバイスに対して重複した操作の結果を取得します。 呼び出し元のスレッドは、警告可能な待機を実行できます。
-
新しい同期バリアのスレッドとスピン数の最大数を指定します。
-
指定したアドレスの値が変更されるまで待機します。
-
アドレスの値の変更を待機しているすべてのスレッドをスリープ解除します。
-
アドレスの値の変更を待機している 1 つのスレッドをスリープ解除します。
新しいインターロック関数
-
指定した LONG 値に対してアトミック加算操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONGLONG 値に対してアトミック加算操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONG 値に対してアトミック AND 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した char 値に対してアトミック AND 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した SHORT 値に対してアトミック AND 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONGLONG 値に対してアトミック AND 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONG64 値の指定したビットをテストし、それを補完します。 この操作はアトミックです。
-
指定した LONG 値の指定したビットをテストし、0 に設定します。 操作はアトミックであり、メモリの取得順序セマンティクスを使用して実行されます。
-
指定した LONG 値の指定したビットをテストし、0 に設定します。 操作はアトミックであり、メモリ 解放セマンティクスを使用して実行されます。
-
指定した LONG 値の指定したビットをテストし、1 に設定します。 操作はアトミックであり、メモリの取得順序セマンティクスを使用して実行されます。
-
指定した LONG 値の指定したビットをテストし、1 に設定します。 操作はアトミックであり、解放メモリ順序セマンティクスを使用して実行されます。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 32 ビット値を比較し、比較の結果に基づいて別の 32 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 交換は、解放メモリ順序セマンティクスを使用して実行されます。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 16 ビット値を比較し、比較の結果に基づいて別の 16 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 64 ビット値を比較し、比較の結果に基づいて別の 64 ビット値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つの 128 ビット値を比較し、比較の結果に基づいて別の 128 ビット値と交換します。
-
指定した値に対してアトミックな比較および交換操作を実行します。 関数は、指定された 2 つのポインター値を比較し、比較の結果に基づいて別のポインター値と交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 32 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 16 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。
-
指定した 16 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。
-
指定した 16 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。 操作は、解放メモリ順序セマンティクスを使用して実行されます。
-
指定した 16 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 64 ビット変数の値をアトミック操作としてデクリメント (1 ずつ減少) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
64 ビット変数をアトミック操作として指定された値に設定します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
8 ビット変数をアトミック操作として指定された値に設定します。
-
16 ビット変数をアトミック操作として指定された値に設定します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。
-
16 ビット変数をアトミック操作として指定された値に設定します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
64 ビット変数をアトミック操作として指定された値に設定します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
アドレスのペアをアトミックに交換します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
2 つの 32 ビット値のアトミック加算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
2 つの 64 ビット値のアトミック加算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 32 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。
-
指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作は、メモリの取得順序セマンティクスを使用して実行されます。
-
指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 この操作は、リリース メモリの順序付けセマンティクスを使用して実行されます。
-
指定した 16 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した 64 ビット変数の値をアトミック操作としてインクリメント (1 ずつ増加) します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONG 値に対してアトミック OR 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した char 値に対してアトミック OR 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した SHORT 値に対してアトミック OR 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONGLONG 値に対してアトミック OR 演算を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
1 つのリンクされたリストを、1 つのリンクされた別のリストの先頭に挿入します。 リストへのアクセスは、マルチプロセッサ システムで同期されます。 このバージョンの メソッドでは、 __fastcall 呼び出し規則は使用されません。
-
指定した LONG 値に対してアトミック XOR 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した char 値に対してアトミック XOR 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した SHORT 値に対してアトミック XOR 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
-
指定した LONGLONG 値に対してアトミック XOR 操作を実行します。 操作はアトミックに実行されますが、メモリ バリアは使用されません。
Windows 7
新しい関数
-
指定された待機可能タイマーをアクティブ化し、タイマーのコンテキスト情報を提供します。
-
排他モードでスリム リーダー/ライター (SRW) ロックの取得を試みます。 呼び出しが成功すると、呼び出し元のスレッドはロックの所有権を取得します。
-
共有モードでスリム リーダー/ライター (SRW) ロックの取得を試みます。 呼び出しが成功すると、呼び出し元のスレッドはロックの所有権を取得します。
新しい構造体
-
SetWaitableTimerEx でアクティブ化されたタイマーのコンテキスト情報が含まれます。