linux中的pthread_mutex_lock和内核mutex_lock有什么区别?

时间:2014-12-18 16:49:30

标签: multithreading linux-kernel locking pthreads mutex

他们之间有什么关系吗?实施和绩效有什么不同?

1 个答案:

答案 0 :(得分:5)

没有直接关系。

pthread_mutex_lock()是一个用户空间API,在C库中实现。在Linux上,它通常基于内核futex()系统调用。

mutex_lock()是一个内部内核API,在内核中实现,只在那里可用。它基于自旋锁并直接操纵当前任务的可调度状态,通常采用体系结构优化的快速路径。

比较性能是没有意义的,因为它们不可互换 - 你可以使用一个,你不能使用另一个,反之亦然。

相关问题