线程如何获取互斥锁?

时间:2014-12-03 10:00:28

标签: c linux multithreading pthreads

我的问题是关于获取互斥锁的线程。

我们使用pthread_mutex_t锁来确保在多线程程序中读/写时对变量的顺序访问。但pthread_mutex_t lock ;也是线程之间共享的全局变量。访问全局变量(锁)是否与访问其他全局变量相同?如果它是相同的,那么我们不会面对我们将面对其他全局变量的相同的问题吗?如果没有,那么如何访问与访问其他全局变量不同的锁数据结构?

简而言之:为什么我们不需要锁定自己的锁,最终导致鸡蛋问题?

1 个答案:

答案 0 :(得分:3)

您并不真正直接访问pthread_mutex_t个变量,您可以使用某些给定的函数(例如pthread_mutex_lock)访问它们。

构建这些函数,以便通过使用一些测试和设置指令(http://en.wikipedia.org/wiki/Test-and-set)或使用代码的某些原子部分({{3}),无法同时访问这些结构。 })。

相关问题