【发布时间】:2017-01-05 13:14:57
【问题描述】:
情况:
- 线程 1 当前拥有互斥锁。
- 虽然线程 1 保留互斥锁的所有权,但线程 2 请求相同的锁。
- 线程 1 解锁。
此时,另一个线程(比如线程 3)是否可以突然进入并请求锁并获取它(如下所示)?或者 POSIX 是否保证在解锁互斥锁时已经在等待所述互斥锁的线程获取互斥锁?
pthread_mutex_unlock() 的手册页指出 -
如果在 mutex 引用的 mutex 对象上有线程阻塞 当调用 pthread_mutex_unlock() 时,导致互斥锁变为 可用,调度策略应确定哪个线程应 获取互斥体。
这似乎是说线程 3 无法突入并获取互斥锁,尽管我并不完全确定。
【问题讨论】: