用户方式同步的优点是它的同步速度非常快。但它也有其局限性。
例如,互锁函数家族只能在单值上运行,根本无法使线程进入等待状态。可以使用关键代码段使线程进入等待状态,但是只能用这些代码段对单个进程中的线程实施同步。还有,使用关键代码段时,很容易陷入死锁状态,因为在等待进入关键代码段时无法设定超时值。
内核对象机制的适应性远远优于用户方式机制。实际上,内核对象机制的唯一不足之处是它的速度比较慢(用户方式转为内核方式是1000个CPU周期)。
线程内核对象总是在未通知状态中创建。当线程终止运行时,操作系统会自动将线程对象的状态改为已通知状态。
下面的内核对象可以处于已通知状态或未通知状态:
■ 进程 |
■ 文件修改通知 |
■ 线程 |
■ 事件 |
■ 作业 |
■ 可等待定时器 |
■ 文件 |
■ 信标 |
■ 控制台输入 |
■ 互斥对象 |
线程同步的各种内核对象:事件、等待计数器,信标和互斥对象。
本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/09/03/1817083.html