内核模式构造
前篇我们已经提过,内核模式构造比用户模式构造慢很多,一个原因是它们要求Windows操作系统自身的配合,另一个原因是内核对象上调用的每个方法都造成调用线程从托管代码转换为本机用户模式代码,再转换为背景内核模式代码,这些转换需要大量的CPU时间。
但是内核模式拥有用户模式没有的优点:
1. 当检测到资源竞争时,windows会阻塞输掉的线程
2. 可同步一台机器中不同进程中运行的线程
3. 防止未经授权的账户访问线程
4. 阻塞的线程可以指定超时值
事件和信号量就是两种内核模式线程同步构造。
WaitHandle抽象基类,唯一的作用就是包装一个windows内核对象句柄,继承WaitHadle的对象可以分为三类:1. 事件构造(AutoResetEvent、ManualResetEvent) 2. Semaphore构造 3. Mutex构造