汇编实现(可内嵌在C++(www.cppentry.com)里使用)
[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++(www.cppentry.com)实现(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();//取值