InterLockedIncrement and InterLockedDecrement
来源:互联网 发布:最新网络诈骗案 编辑:程序博客网 时间:2024/06/05 03:09
最近做的东西和相关的多线程访问相关,看到相关InterLockedIncrement and InterLockedDecrement的介绍比较少,我就简单总结一下:
InterLockedIncrement and InterLockedDecrement
实现数的原子性加减。什么是原子性的加减呢?
举个例子:如果一个变量 Long value =0;
首先说一下正常情况下的加减操作:value+=1;
1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的值;
2:将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束。
如果此时有两个Thread ,分别记作threadA,threadB。
1:threadA将Value从存储空间取出,为0;
2:threadB将Value从存储空间取出,为0;
3:threadA将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束,Value=1。
4:threadB将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束,Value=1。
最后Value =1 ,而正确应该是2;这就是问题的所在,InterLockedIncrement 能够保证在一个线程访问变量时其它线程不能访问。同理InterLockedDecrement。
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement
- InterLockedIncrement and InterLockedDecrement函数原理
- InterLockedIncrement and InterLockedDecrement函数原理
- InterLockedIncrement and InterLockedDecrement函数原理
- InterLockedIncrement and InterLockedDecrement函数原理
- Delphi InterlockedIncrement/InterlockedDecrement
- InterLockedIncrement 和 InterLockedDecrement
- InterlockedIncrement和InterlockedDecrement的妙用
- InterlockedIncrement和InterlockedDecrement的妙用
- InterlockedIncrement和InterlockedDecrement的妙用
- InterLockedIncrement 和 InterLockedDecrement处理线程访问
- 使用 InterlockedIncrement/InterlockedDecrement 的一个误区
- javascript 根据下拉框选择显示不同的DIV
- 学习C/C++的经验谈
- C# 学习笔记(1)
- 学好C/C++的办法
- 少走弯路 Web开发网站制作十八条心得
- InterLockedIncrement and InterLockedDecrement
- 闭合浮动元素超级简单的方法http://www.jluvip.com/blog/article.asp?id=281
- rails模型验证大全
- 打印网页内容
- SAP BC415 课程中文自学笔记
- 手把手教你配置Windows2003集群(图)
- 把private声明从.h文件移到.cpp文件
- jtest学习
- c#与javascript互访