同步机制摘要

Critical Section

临界区用来实现 排他性占有 ,适用范围是单一进程的各线程之间,这旨:

一个局部性对象,不是一个核心对象

快速而有效

不能够同时有一个以上的Critical Section 被等

无法侦测是否已经某个线程放弃

 

Mutex

是一个核心对象,可以在不同的线程之间实现 排他性占有 ,甚至那些线程分属于不同进程,它是:

一个核心对象

如果拥有Mutex的那个线程结束,刚会产生一个 Abandoned 错误

可以使用Wait。。。()等一个Mutex

可以有名称,所以可以被其它进程使用

只能被拥有它的线程释放

 

Semaphore

被用来追踪有限的资源,它是

一个核心对象

没有拥有者

可以有名,因此可以被其它进程打开

可以被任何一个线程释放

 

Events Object

通常用于Overlapped I/O,或用来设计某些自定义的同步对象,它是:

一个核心对象

完全在程序掌控之下

适用于设计新的同步对象

要求苏醒 的请求并不会被储存起来,可能会遗失掉

可以有名称,因此可以被其他进程打开

 

Interlocked Variable

posted @ 2010-07-08 15:19  南守拥  阅读(212)  评论(0编辑  收藏  举报