2009-04-22 213 views
1

什么是实际差异概念和实现之间的观点线程/同步

Semophore,Mutex,Monitor?

我们说Semophores是资源分配柜台......好吧,我明白这一点..

互斥量,我们说的是互斥二进制Semophore ......天哪是什么???

监视器保护对象的入口点......即只有一个线程可以获取它并且可以运行它的一个守护入口点???那么什么是互斥?

+0

dupe:http://stackoverflow.com/questions/760168/when-should-each-thread-synchronization-objects-be-used – finnw 2009-08-03 10:17:15

回答

1

信号灯是一种锁定机制,iirc可以在概念上配置为允许多个aceess对象;例如一次访问三个,一次四个,等等。

互斥量是确保互斥的信号量的特例,也就是说,只有一个人可以在任何时候访问受保护的资源。

请务必注意,信号量和互斥量在等待访问共享资源时都不会确保严格排序。当资源变得可访问时,一些等待线程将获得访问权限,但没有关于哪个线程将被访问。统计上,最终所有线程都将(必须)获得访问权限。

监视器通过按特定顺序对它们进行排队,而不一定如何到达,从而强制等待线程/进程的优先级。操作系统是监视器的一个例子 - 确保单个进程在任何给定时间都具有CPU。

+0

好的解释只是一件事。信号量确实拥有一个数据结构可能是一个Queue,它本身可以在线程无法分配资源时等待线程。这不是一种排序吗? 如果您可以详细说明Mutex和差异黑白监视器和互斥锁的工作情况。 – 2009-04-22 12:31:41