线程4:原子变量与原子操作
2015-08-21 17:26
176 查看
int data = 0;//多个线程同时访问一个变量,同时写入,会冲突 //一个变量是线程安全,多线程同时读写没有误差 //使用原子变量解决线程冲突问题 DWORD WINAPI runX(void *p) { for (int i = 0; i < 10000; i++) { //InterlockedIncrement(&data);//精确 操作完成了后续才能继续 InterlockedExchangeAdd(&data, 1);//精确 } } //原子操作解决多线程安全 void main() { HANDLE hd[50]; for (int i = 0; i < 50;i++) { hd[i] = CreateThread(NULL, 0, runX, NULL, 0, NULL); } WaitForMultipleObjects(50, hd, TRUE, INFINITE); printf("%d", data); system("pause"); }
相关文章推荐
- Java并发编程之原子变量与非阻塞同步机制
- 并发编程--使用原子变量
- 原子变量AtomicInteger
- 再谈Java原子变量以及同步的效率 -- 颠覆你的人生观
- 使用Volatile变量还是原子变量
- JAVA 并发编程实践 - 原子变量与非阻塞同步机制 笔记
- AtomicBoolean应用场景
- 原子变量和CAS算法简单介绍
- Mutex(互斥锁)
- Item16 Make const member functions thread safe
- C++11 多线程编程 原子变量
- Java并发读书学习笔记(十一)——原子变量与非阻塞同步机制
- POJ_1067 取石子游戏(Wythoff Game)
- 【NOI2006 Day2 T1】最大获利
- 第0章 前言知识
- hdoj-1874 畅通工程续【最短路径--dijkstra&&floyd&&spfa】
- Windows多桌面切换(CreateDesktop,SwitchDesktop函数)
- Netty系列之Netty百万级推送服务设计要点
- jQuery实现导航栏