线程之路之四:进程同步线程互斥
来源:互联网 发布:羽绒 鸭绒 知乎 编辑:程序博客网 时间:2024/06/06 03:07
信号量:
#include <iostream>#include<Windows.h>#include <process.h>HANDLE semaphore;CRITICAL_SECTION b;int num;unsigned int __stdcall ThreadFun(PVOID pm){int m=*((int*)pm);ReleaseSemaphore(semaphore,1,NULL);EnterCriticalSection(&b);num++;std::cout<<m<<"说:"<<num<<std::endl;LeaveCriticalSection(&b);return 0;}int main(){const int n =50;HANDLE handle[n];semaphore =CreateSemaphore(NULL,0,1,NULL);InitializeCriticalSection(&b);//旋转锁 旋转4000次num = 0;int i=0;while(i<10){handle[i] =(HANDLE)_beginthreadex(NULL,0,ThreadFun,&i,0,NULL);WaitForSingleObject(semaphore,INFINITE);i++;}WaitForMultipleObjects(n,handle,true,INFINITE);system("pause");CloseHandle(semaphore); DeleteCriticalSection(&b); return 0;}
用信号量处理主线程与子线程的同步,用关键段来处理各子线程间的互斥。
由于信号量可以计算资源当前剩余量并根据当前剩余量与零比较来决定信号量是处于触发状态或是未触发状态,因此信号量的应用范围相当广泛。
0 0
- 线程之路之四:进程同步线程互斥
- Android进程线程之同步互斥(一)
- Android进程线程之同步互斥(一)
- Android进程线程之同步互斥(一)
- Android进程线程之同步互斥(一)
- 操作系统之进程互斥与同步和线程
- 进程-线程-同步-互斥
- Linux之线程:同步与互斥
- 线程同步互斥之线程PUTTER函数设计思想
- Unix,进程,线程,同步,互斥,通信
- Unix,进程,线程,同步,互斥,通信
- 操作系统 进程/线程 同步与互斥
- Linux线程浅析[线程的同步和互斥之线程同步的条件变量pthread_cond_t]
- java Thread:线程同步之互斥(1)
- java Thread:线程同步之互斥(2)
- 线程同步之互斥对象(通俗易懂)
- Linux 编程之【线程】同步与互斥
- 线程同步互斥之互斥量(Mutex)
- 用记事本写xml文档
- sublime 插件管理器安装
- 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(2)--添加一个布局和表格
- iOS应用性能调优的25个建议和技巧
- json解析:gson解析json
- 线程之路之四:进程同步线程互斥
- UVALive 3126 Taxi Cab Scheme(DAG的最小路径覆盖)
- Session 浅析
- ACM训练方案
- json简介
- javascript操作cookie
- 数据链路层——数据帧组成,可靠性传输
- \r \n有什么区别
- sharepoint SPFolder的使用