摘要: 概述 : 非内核对象临界区非常适合于序列化对一个进程中的数据的访问,因为它们的速度很快。但我们或许想要使一些应用程序与计算机中发生的其它特殊事件或者其它进程中执行的操作取得同步。这时临界区无能为力。就需要使用内核对象来同步。 可以使用下列内核对象可用来同步线程: 1. 进程,Processes 2. 线程,Threads 3. 文件,Files 4. 控制台输入,Console input 5. 文件变化通知,File change notifications 6. 互斥量,Mutexes 7. 信号量,Semaphores 8. 事件(自动重设事件和手动重设事件),Events 9. 可等. 阅读全文
posted @ 2011-06-21 15:15 zsounder 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 概述 : 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区:在所有同步对象中,临界区是最容易使用的,但它只能用于同步单个进程中的线程。取得对某个数据区的访临界区一次只允许一个线程问权。还有,在这些同步对象中,只有临界区不是内核对象,它不由操作系统的低级部件管理,而且不能使用句柄来操纵,由于不是内核对象,使得它作为一种轻量级的同步机制,同 阅读全文
posted @ 2011-06-21 15:09 zsounder 阅读(573) 评论(0) 推荐(1) 编辑