社区
进程/线程/DLL
帖子详情
InterlockedExchangeAdd 的 64 位版本是什么?
yhz
2006-09-22 10:08:35
在我的程序中,要用到对 unsigned __int64 的保护操作。
但是发现InterlockedExchange的64位版本可以用InterlockedExchangePointer来代替,
但是InterlockedExchangeAdd的代替版本是什么?
谢谢了。
...全文
256
2
打赏
收藏
InterlockedExchangeAdd 的 64 位版本是什么?
在我的程序中,要用到对 unsigned __int64 的保护操作。 但是发现InterlockedExchange的64位版本可以用InterlockedExchangePointer来代替, 但是InterlockedExchangeAdd的代替版本是什么? 谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yhz
2006-09-22
打赏
举报
回复
这个我知道: InterlockedExchangeAdd64。
不过MSDN写了:
Client Requires Windows Vista.
Server Requires Windows Server "Longhorn" or Windows Server 2003.
有没有能在2000和xp下面用的?
lixiaosan
2006-09-22
打赏
举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/interlockedexchangeadd.asp
Windows线程同步之互锁函数(
Inte
r
lock
ed)
Windows下进程内部的各个线程之间的同步不需要借助内核对象,Windows提供的默认在用户模式下的线程同步工具。互锁函数为多线程同步访问共享变量提供了一个简单的机制。如果变量在共享内存,不同进程的线程也可以使用此机制。互锁函数对共享变量的操作是原子的,这个原子性体现在保证多线程在同一个时刻只能有一个线程获得对该同步变量的操作权限。(1)
Inte
r
lock
e
dEx
change
Add
()LONG _
原子操作
获得互斥量以及其他锁原语的开销可能是非常大的。许多现代的计算机体系结构都会支持一些特殊的指令,这些指令使 开发人员可以快速执行普通的原子操作,而不会带来锁获取所导致的开销。微软提供了互锁API来支持这些操作。 互锁函数提供了32
位
和
64
位
变量的原子操作。这些函数主要进行下列操作:
Inte
r
lock
edIncrement()完成一个原子操作,将递增一个32
位
变量。该函数的
64
位
版本
是
Inte
r
多线程计数器——原子操作
众所周知,多线程下计数存在着计数不对的问题。这个问题的根源在于多个线程对同一个变量能够同一时候訪问(改动)。这样就造成了改动后的结果不一致。 首先在这里先强调一点。volatile keyword并不能提供多线程安全訪问。由于有volatie修饰的变量。每次操作时遵循以下动作: 从内存取值 ---> 放入寄存器 ---> 操作 --->写回内存 ...
第八章:用户模式下的线程同步
1:
Inte
r
lock
ed系列函数 1.1:
Inte
r
lock
ed系列函数都提供
64
位
版本
,以下文字不将
64
位
版本
函数,具体请参考书上 1.2:
Inte
r
lock
ed系列函数在x86平台下工作原理是在总线上维持一个硬件信号,这个信号会阻止其他CPU访问同一个内存地址 1.3
Windows线程同步之互锁函数(
Inte
r
lock
ed)
Windows下进程内部的各个线程之间的同步不需要借助内核对象,Windows提供的默认在用户模式下的线程同步工具。 互锁函数为多线程同步访问共享变量提供了一个简单的机制。如果变量在共享内存,不同进程的线程也可以使用此机制。 互锁函数对共享变量的操作是原子的,这个原子性体现在保证多线程在同一个时刻只能有一个线程获得对该同步变量的操作权限。 (1)
Inte
r
lock
e
dEx
change
Add
(
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章