CreateMutex()内部如何工作?

时间:2010-01-20 14:04:17

标签: winapi visual-c++

基本上,它用于创建应用程序实例单例。

我想知道, 它是如何在内部工作的以及OS如何管理它?

3 个答案:

答案 0 :(得分:1)

它创建一个系统范围的对象。操作系统如何管理它是一个隐藏的实现细节,您只能通过操作系统提供的功能使用互斥锁(例如ReleaseMutex())。

答案 1 :(得分:1)

This MSDN Article有一些关于互斥锁的基本细节的信息。通常,使用Windows CreateMutex函数创建的互斥锁是内核拥有的对象,这意味着用户级应用程序必须从用户模式转换到内核模式以获取互斥锁的所有权。

答案 2 :(得分:1)

这提供了一些关于内部的提示

http://msdn.microsoft.com/en-us/library/ms684266%28VS.85%29.aspx

如果您对算法感兴趣,维基百科是一个很好的起点。 如果您对实现感兴趣,可以使用google linux源代码semaphore.c