pthread_mutex_lock是如何实现的

我只是很想知道如何在Unix中实现进程和线程之间的同步相关的函数意味着当我打电话说pthread_mutex_lock什么都发生? 任何指针? 或源代码真的有帮助。

Solutions Collecting From Web of "pthread_mutex_lock是如何实现的"

它既复杂又不同于Unix到Unix的变种。

例如,在Linux中,使用了一个名为Futex(快速用户空间互斥体的简称)的系统。

在这个系统中,对用户空间中的互斥变量执行原子增量和测试操作。

如果操作的结果表明没有对锁的争用,那么对pthread_mutex_lock的调用将不经过上下文切换而返回到内核中,所以采取互斥的操作可以非常快。

只有在检测到争用的情况下,系统调用(称为futex)和上下文切换到内核才会使调用进程进入休眠状态,直到释放互斥量。

有很多更多的细节,尤其是对于可靠和/或优先级的互斥锁,但这是它的本质。

有关更多详细信息,请参阅: http : //linux.die.net/man/2/futex和http://en.wikipedia.org/wiki/Futex

在Linux上,pthreads可以通过libc获得。 通常是glibc,来源可在这里 !

检查这个参考 。