同步机制摘要

it2022-05-09  27

Critical Section

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

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

快速而有效

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

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

 

Mutex

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

一个核心对象

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

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

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

只能被拥有它的线程释放

 

Semaphore

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

一个核心对象

没有拥有者

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

可以被任何一个线程释放

 

Events Object

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

一个核心对象

完全在程序掌控之下

适用于设计新的同步对象

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

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

 

Interlocked Variable

转载于:https://www.cnblogs.com/nanshouyong326/archive/2010/07/08/1773652.html

相关资源:数据结构—成绩单生成器

最新回复(0)