各种版本的++、--原子操作
汇编实现(可内嵌在C++里使用)
[cpp]
#ifdef WIN32
void __inline atomic_inc(int* v)
{
__asm
{
mov ebx, v
lock inc dword ptr [ebx]
}
}
#else
static __inline__ void atomic_inc(int *v)
{
__asm__ __volatile__(
"lock incl %0"
:"+m" (*v));
}
#endif
C++实现(WIN平台)
[cpp]
LONG
WINAPI
InterlockedIncrement (
__inout LONG volatile *lpAddend
);
ACE实现(跨平台)
[cpp]
ACE_Atomic_Op<ACE_Thread_Mutex,int> index_;//定义
[cpp] view plaincopyprint?
index++;//增一
[cpp] view plaincopyprint?
index.value();//取值
补充:软件开发 , C++ ,