标签: multithreading linux-kernel locking pthreads mutex
他们之间有什么关系吗?实施和绩效有什么不同?
答案 0 :(得分:5)
没有直接关系。
pthread_mutex_lock()是一个用户空间API,在C库中实现。在Linux上,它通常基于内核futex()系统调用。
pthread_mutex_lock()
futex()
mutex_lock()是一个内部内核API,在内核中实现,只在那里可用。它基于自旋锁并直接操纵当前任务的可调度状态,通常采用体系结构优化的快速路径。
mutex_lock()
比较性能是没有意义的,因为它们不可互换 - 你可以使用一个,你不能使用另一个,反之亦然。