RLib  5.7
RLib - an opensource, lightweight and multi-platform framework for cpp programming
System::Threading::Interlocked Class Reference

为多个线程共享的变量提供原子操作 More...

Public Member Functions

 __RLIB_INTERLOCKED_API_UNARY (IncrementNoFence, long)
 以原子操作的形式递增指定变量的值并存储结果, 并且不设置内存屏障 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Increment, long)
 以原子操作的形式递增指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Increment16, short)
 以原子操作的形式递增指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Increment64, long long)
 以原子操作的形式递增指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_UNARY (DecrementNoFence, long)
 以原子操作的形式递减指定变量的值并存储结果, 并且不设置内存屏障 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Decrement, long)
 以原子操作的形式递减指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Decrement16, short)
 以原子操作的形式递减指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_UNARY (Decrement64, long long)
 以原子操作的形式递减指定变量的值并存储结果 More...
 
 __RLIB_INTERLOCKED_API_BINARY (ExchangeNoFence)
 以原子操作的形式,将变量设置为指定的值并返回原始值, 并且不设置内存屏障 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Exchange)
 以原子操作的形式,将变量设置为指定的值并返回原始值 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Exchange16)
 以原子操作的形式,将变量设置为指定的值并返回原始值 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Exchange64)
 以原子操作的形式,将变量设置为指定的值并返回原始值 More...
 
 __RLIB_INTERLOCKED_API_BINARY (ExchangePointer)
 以原子操作的形式,将指针变量设置为指定的值并返回原始值 More...
 
 __RLIB_INTERLOCKED_API_BINARY (AddNoFence)
 对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成, 并且不设置内存屏障 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Add)
 对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_BINARY (ExchangeAdd)
 对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Add16)
 对两个 16 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_BINARY (Add64)
 对两个 64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_TEMARY (CompareExchange, long)
 比较两个 32 位有符号整数是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_TEMARY (CompareExchange64, long long)
 比较两个 64 位有符号整数是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成 More...
 
 __RLIB_INTERLOCKED_API_TEMARY (CompareExchangePointer, PVOID)
 比较两个指针是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成 More...
 

Detailed Description

为多个线程共享的变量提供原子操作

Member Function Documentation

System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( ExchangeNoFence  )

以原子操作的形式,将变量设置为指定的值并返回原始值, 并且不设置内存屏障

Parameters
location1要设置为指定值的变量, 必须 32-bit 对齐
valuelocation1 参数被设置为的值
Returns
location1 的原始值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Exchange  )

以原子操作的形式,将变量设置为指定的值并返回原始值

Parameters
location1要设置为指定值的变量, 必须 32-bit 对齐
valuelocation1 参数被设置为的值
Returns
location1 的原始值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Exchange16  )

以原子操作的形式,将变量设置为指定的值并返回原始值

Parameters
location1要设置为指定值的变量, 必须 16-bit 对齐
valuelocation1 参数被设置为的值
Returns
location1 的原始值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Exchange64  )

以原子操作的形式,将变量设置为指定的值并返回原始值

Parameters
location1要设置为指定值的变量, 必须 64-bit 对齐
valuelocation1 参数被设置为的值
Returns
location1 的原始值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( ExchangePointer  )

以原子操作的形式,将指针变量设置为指定的值并返回原始值

Parameters
location1要设置为指定值的指针变量, 必须对齐
valuelocation1 参数被设置为的值
Returns
location1 的原始值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( AddNoFence  )

对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成, 并且不设置内存屏障

Parameters
location1一个变量,必须 32-bit 对齐,包含要添加的第一个值. 两个值的和存储在 location1 中
value要添加到整数中的 location1 位置的值
Returns
存储在 location1 处的新值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Add  )

对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成

Parameters
location1一个变量,必须 32-bit 对齐,包含要添加的第一个值. 两个值的和存储在 location1 中
value要添加到整数中的 location1 位置的值
Returns
存储在 location1 处的新值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( ExchangeAdd  )

对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成

Parameters
location1一个变量,必须 32-bit 对齐,包含要添加的第一个值. 两个值的和存储在 location1 中
value要添加到整数中的 location1 位置的值
Returns
location1 处的原值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Add16  )

对两个 16 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成

Parameters
location1一个变量,必须 16-bit 对齐,包含要添加的第一个值. 两个值的和存储在 location1 中
value要添加到整数中的 location1 位置的值
Returns
存储在 location1 处的新值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_BINARY ( Add64  )

对两个 64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成

Parameters
location1一个变量,必须 64-bit 对齐,包含要添加的第一个值. 两个值的和存储在 location1 中
value要添加到整数中的 location1 位置的值
Returns
存储在 location1 处的新值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_TEMARY ( CompareExchange  ,
long   
)

比较两个 32 位有符号整数是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成

Parameters
location1其值将与 comparand 进行比较并且可能被替换的目标
value比较结果相等时替换目标值的值
comparand与位于 location1 处的值进行比较的值
Returns
location1 中的原值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_TEMARY ( CompareExchange64  ,
long  long 
)

比较两个 64 位有符号整数是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成

Parameters
location1其值将与 comparand 进行比较并且可能被替换的目标
value比较结果相等时替换目标值的值
comparand与位于 location1 处的值进行比较的值
Returns
location1 中的原值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_TEMARY ( CompareExchangePointer  ,
PVOID   
)

比较两个指针是否相等,如果相等则替换第一个值,上述操作作为一个原子操作完成

Parameters
location1其值将与 comparand 进行比较并且可能被替换的目标
value比较结果相等时替换目标值的值
comparand与位于 location1 处的值进行比较的值
Returns
location1 中的原值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( IncrementNoFence  ,
long   
)

以原子操作的形式递增指定变量的值并存储结果, 并且不设置内存屏障

Parameters
location其值要递增的变量, 必须 32-bit 对齐
Returns
递增后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Increment  ,
long   
)

以原子操作的形式递增指定变量的值并存储结果

Parameters
location其值要递增的变量, 必须 32-bit 对齐
Returns
递增后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Increment16  ,
short   
)

以原子操作的形式递增指定变量的值并存储结果

Parameters
location其值要递增的变量, 必须 16-bit 对齐
Returns
递增后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Increment64  ,
long  long 
)

以原子操作的形式递增指定变量的值并存储结果

Parameters
location其值要递增的变量, 必须 64-bit 对齐
Returns
递增后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( DecrementNoFence  ,
long   
)

以原子操作的形式递减指定变量的值并存储结果, 并且不设置内存屏障

Parameters
location其值要递减的变量, 必须 32-bit 对齐
Returns
递减后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Decrement  ,
long   
)

以原子操作的形式递减指定变量的值并存储结果

Parameters
location其值要递减的变量, 必须 32-bit 对齐
Returns
递减后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Decrement16  ,
short   
)

以原子操作的形式递减指定变量的值并存储结果

Parameters
location其值要递减的变量, 必须 16-bit 对齐
Returns
递减后的值
System::Threading::Interlocked::__RLIB_INTERLOCKED_API_UNARY ( Decrement64  ,
long  long 
)

以原子操作的形式递减指定变量的值并存储结果

Parameters
location其值要递减的变量, 必须 64-bit 对齐
Returns
递减后的值

The documentation for this class was generated from the following file: