例 两个线程分别有一个初值为0的int局部变量,两个线程的行为是在一个循环中,使整型变量递增 一个约束条件,在递增过程中,这两个值的差不超过5 #include windows.h HANDLE hEvent1, hEvent2; int a[ 5 ]; DWORD WINAPI Thread(PVOID pParams ) { int i, num = 0; while( TRUE ) { WaitForSingleObject( hEvent2, INFINITE ); for ( i = 0; i 5; i++ ) a[ i ] = num; SetEvent( hEvent1 ); num++; } return 0; } 事件 int main() { hEvent1 = CreateEvent( NULL, FALSE, TRUE, NULL ); hEvent2 = CreateEvent( NULL, FALSE, FALSE, NULL ); CreateThread( NULL,0,Thread, NULL,0, NULL ); while( TRUE ) { WaitForSingleObject( hEvent1, INFINITE ); printf(%d %d %d %d %d\n, a[ 0 ], a[ 1 ], a[ 2 ], a[ 3 ], a[ 4 ] ); SetEvent( hEvent2 ); } return 0; } 事件 5、信号量 信号量是一个内核对象,可用来管理大量有限的系统资源 一个使用计数 32位整数,最大资源数量 32位整数,当前资源数量 信号量使用规则: 当前资源数量大于0,则等待信号量的线程获得资源继续运行,当前资源数量减1 当前资源数量等于0,则等待信号量的线程继续等待,直到有线程释放信号量,使当前资源数量大于0 创建信号量 5、信号量 HANDLE CreateSemaphore( PSECURITY_ATTRIBUTES psa, LONG lInitialCount, // initial count LONG lMaximumCount, // maximum count PCTSTR pszName // object name ); 为现有的一个已命名信号机对象创建一个新句柄。 5、信号量 HANDLE OpenSemaphore( DWORD fdwAccess, BOOL bInheritHandle, // inheritance option PCTSTR pszName // object name ); SEMAPHORE_ALL_ACCESS 要求对信号量的完全访问; SEMAPHORE_MODIFY_STATE 允许使用ReleaseSemaphore函数; SYNCHRONIZE 允许使用信号量同步。 #include “windows.h“ 例2 CRITICAL_SECTION g_cs; char g_cArray[10]; // 共享资源 DWORD WINAPI ThreadProc1(PVOID pParam) { EnterCriticalSection(g_cs); // 对共享资源进行写入操作 for (int i = 0; i 10; i++) { g_cArray[i] = a; Sleep(1); } LeaveCriticalSection(g_cs); return 0; } DWORD WINAPI ThreadProc2(PVOID pParam) { // 进入临界区 EnterCriticalSection(g_cs); // 对共享资源进行写入操作 for (int i = 0; i 10; i++) { g_cArray[10 - i - 1] = b; Sleep(1); } // 离开临界区 LeaveCriticalSection(g_cs); return
您可能关注的文档
- 乘坐校车安全常识解说.ppt
- CH9净化方案及新能源汽车技术解说.ppt
- ch11管理信息系统的应用解说.ppt
- Ch11网络安全协议解说.ppt
- NSAID相关性胃肠病解说.ppt
- ch11轴-联轴器新解说.ppt
- 串激电机技术解说.ppt
- NUTs 处理NMR谱图技巧解说.ppt
- Ch13.6-8(稳恒电流的磁场)解说.ppt
- Nuts处理NMR谱图技巧解说.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)