设为首页 加入收藏

TOP

各种版本的++、--原子操作
2013-01-09 13:41:25 来源: 作者: 【 】 浏览:312
Tags:各种 版本 原子 操作

  汇编实现(可内嵌在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();//取值

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中的位拷贝与值拷贝浅谈 下一篇关于大数据批量更新的问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: