我只是很想知道如何在Unix中实现进程和线程之间的同步相关的函数意味着当我打电话说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,来源可在这里 !
检查这个参考 。