代码改变世界

随笔档案-2012年8月5日

Chapter09-"内核模式下的线程同步"之事件内核对象

2012-08-05 16:46 by java20130722, 189 阅读, 收藏,
摘要: 有两种事件内核对象:自动事件和手动事件。当手动事件被触发时,所以该事件的等待线程都编程可调度状态;而自动事件被触发时,只有个一个等待该事件线程变成可调度状态。 下面再逐个讲解Event的相关函数:a)创建事件函数——CreateEvent函数: HANDLE CreateEvent( PSECURITY_ATTRIBUTESpsa, BOOLbManualReset, BOOLbInitialState, PCTSTRpszName); 具体的函数参数及用法,请查看上面的超链接。b)第二创建事件的函数——CreateEventEx函数: HANDLE CreateEventEx( PSECU. 阅读全文

Chapter09-"内核模式下的线程同步"之等待函数

2012-08-05 11:37 by java20130722, 182 阅读, 收藏,
摘要: 概述: 用户模式下的线程同步(user-mode thread synchronization)一个明显的优点是速度快;如果你非常在意程序的性能,则最好使用用户模式下的线程同步。但是用户模式下也有一定的缺点限制:interlocked lock APIs只能对一个值进行操控,而不能使得一个线程处于等待状态;你可以用Critical Section系列函数使某个线程处于等待状态,但是你稍有不慎则有可能陷入死锁。 所以在某些情况下,内核模式的线程同步(kernel-mode thread synchronization)是一个不错的选择。等待的函数(waitfunctions)DWORD Wait 阅读全文