同步中的新增功能
Windows 包含以下用于同步的新编程元素。
Windows 8
新函数
-
删除同步屏障。
-
导致调用线程在同步屏障处等待,直到最大线程数进入该屏障。
-
检索指定超时间隔内对指定文件、命名管道或通信设备执行重叠操作的结果。 调用线程可以执行可发出警报的等待。
-
指定新同步屏障的最大线程数和旋转计数。
-
等待指定地址处的值更改。
-
唤醒正在等待地址值更改的所有线程。
-
唤醒一个正在等待地址值更改的线程。
新的互锁函数
-
对指定的 LONG 值执行原子加法运算。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONGLONG 值执行原子加法运算。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONG 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 字符 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 SHORT 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONGLONG 值执行原子 AND 操作。 此操作以原子方式执行,但不使用内存屏障。
-
测试指定 LONG64 值的指定位并对其进行补充。 此操作为原子性操作。
-
测试指定 LONG 值的指定位并将其设置为 0。 该操作是原子的,它通过获取内存排序语义来执行。
-
测试指定 LONG 值的指定位并将其设置为 0。 该操作是原子操作,使用内存释放语义执行。
-
测试指定 LONG 值的指定位并将其设置为 1。 该操作是原子的,它通过获取内存排序语义来执行。
-
测试指定 LONG 值的指定位并将其设置为 1。 该操作是原子操作,它使用释放内存排序语义执行。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 32 位值,并根据比较结果与另一个 32 位值交换。 此操作以原子方式执行,但不使用内存屏障。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 该操作是使用获取内存排序语义执行的。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 交换是使用释放内存排序语义执行的。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 16 位值,并根据比较结果与另一个 16 位值交换。 此操作以原子方式执行,但不使用内存屏障。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 64 位值,并根据比较结果与另一个 64 位值交换。 此操作以原子方式执行,但不使用内存屏障。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的 128 位值,并根据比较结果与另一个 128 位值交换。
-
对指定值执行原子比较和交换操作。 函数比较两个指定的指针值,并根据比较结果与另一个指针值交换。 此操作以原子方式执行,但不使用内存屏障。
-
递减 () 指定 32 位变量的值作为原子操作减少一个。 此操作以原子方式执行,但不使用内存屏障。
-
递减 (将) 指定 16 位变量的值作为原子运算递减 1。
-
递减 (将) 指定 16 位变量的值作为原子运算递减 1。 该操作是使用获取内存排序语义执行的。
-
递减 (将) 指定 16 位变量的值作为原子运算递减 1。 该操作使用释放内存排序语义执行。
-
递减 (将) 指定 16 位变量的值作为原子运算递减 1。 此操作以原子方式执行,但不使用内存屏障。
-
递减 () 指定 64 位变量的值作为原子运算减少 1。 此操作以原子方式执行,但不使用内存屏障。
-
将 64 位变量设置为指定值作为原子操作。 此操作以原子方式执行,但不使用内存屏障。
-
将 8 位变量设置为指定值作为原子操作。
-
将 16 位变量设置为指定值作为原子操作。 操作是使用获取内存排序语义执行的。
-
将 16 位变量设置为指定值作为原子操作。 此操作以原子方式执行,但不使用内存屏障。
-
将 64 位变量设置为指定值作为原子操作。 此操作以原子方式执行,但不使用内存屏障。
-
以原子方式交换一对地址。 此操作以原子方式执行,但不使用内存屏障。
-
执行两个 32 位值的原子加法。 此操作以原子方式执行,但不使用内存屏障。
-
执行两个 64 位值的原子加法。 此操作以原子方式执行,但不使用内存屏障。
-
() 指定 32 位变量的值作为原子运算增加一个增量。 此操作以原子方式执行,但不使用内存屏障。
-
() 指定 16 位变量的值作为原子运算递增 1。
-
() 指定 16 位变量的值作为原子运算递增 1。 操作是使用获取内存排序语义执行的。
-
() 指定 16 位变量的值作为原子运算递增 1。 该操作使用发布内存排序语义执行。
-
() 指定 16 位变量的值作为原子运算递增 1。 此操作以原子方式执行,但不使用内存屏障。
-
() 指定 64 位变量的值作为原子运算递增 1。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONG 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 字符 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 SHORT 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONGLONG 值执行原子 OR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
在另一个单独链接列表的前面插入一个单独链接列表。 对列表的访问在多处理器系统上同步。 此方法的此版本不使用 __fastcall 调用约定。
-
对指定的 LONG 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 字符 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 SHORT 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障。
-
对指定的 LONGLONG 值执行原子 XOR 操作。 此操作以原子方式执行,但不使用内存屏障。
Windows 7
新函数
-
激活指定的可等待计时器,并提供计时器的上下文信息。
-
尝试在独占模式下 (SRW) 锁定获取超薄的读取器/编写器。 如果调用成功,调用线程将获取锁定的所有权。
-
尝试在共享模式下获取超薄读取器/写入器 (SRW) 锁。 如果调用成功,调用线程将获取锁定的所有权。
新结构
-
包含使用 SetWaitableTimerEx 激活的计时器的上下文信息。