随笔分类 -  win32多线程

摘要:Event 方式是最具弹性的同步机制,因为他的状态完全由你去决定,不会像 Mutex 和 Semaphores 的状态会由类似:WaitForSingleObject 一类的函数的调用而改变,所以你可以精确的告诉 Event 对象该做什么事?以及什么时候去做!HANDLE CreateEvent( ... 阅读全文
posted @ 2014-04-15 16:59 执迷不悟~ 阅读(2776) 评论(0) 推荐(1)
摘要:HANDLE WINAPI CreateSemaphore( _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes _In_ LONG lInitialCount, _In_ LONG lMaximumCount,... 阅读全文
posted @ 2014-04-15 12:39 执迷不悟~ 阅读(25826) 评论(0) 推荐(2)
摘要:使用方法: 1、创建一个互斥器:CreateMutex; 2、打开一个已经存在的互斥器:OpenMutex; 3、获得互斥器的拥有权:WaitForSingleObject、WaitForMultipleObjects 等一类等待的函数……(可能造成阻塞); 4、释放互斥器的拥有权... 阅读全文
posted @ 2014-04-14 20:24 执迷不悟~ 阅读(20908) 评论(0) 推荐(1)
摘要:关键区域(CriticalSection)临界区是为了确保同一个代码片段在同一时间只能被一个线程访问,与原子锁不同的是临界区是多条指令的锁定,而原子锁仅仅对单条操作指令有效;临界区和原子锁只能控制同一个进程中线程的同步使用方法:1、初始化:InitializeCriticalSection; 2、删... 阅读全文
posted @ 2014-04-14 18:53 执迷不悟~ 阅读(3541) 评论(0) 推荐(1)
摘要:原子锁:当多个线程同时对同一资源进行操作时,由于线程间资源的抢占,会导致操作的结果丢失或者不是我们预期的结果。比如:线程A对一个变量进行var++操作,线程B也执行var++操作,当线程A执行var++时,如果线程切换时间恰好是线程A将结果存在var变量之前,那么线程B继续执行var++;此时假设v... 阅读全文
posted @ 2014-04-14 15:47 执迷不悟~ 阅读(2991) 评论(0) 推荐(0)