【发布时间】:2016-03-05 11:04:48
【问题描述】:
假设有 3 个线程 A、B 和 C。 还有一个互斥锁 X
A 在 X 上调用 pthread_mutex_lock。
B 在 X 上调用 pthread_mutex_lock。
*
C 在 X 上调用 pthread_mutex_lock。
A 在 X 上调用 pthread_mutex_unlock。
**
现在谁可以先使用共享资源? B 还是 C? 如果我尝试在 * 中使用 pthread_destroy_mutex 会发生什么?在**中?
【问题讨论】:
-
'B 还是 C?' - 其中之一。作为设计师,确保订单无关紧要是您的工作。
-
POSIX 标准中回答了另一个问题:“尝试销毁锁定的互斥体会导致未定义的行为。”
-
@MartinJames 顺序无关紧要,但不重要的是要知道而不是按原样接受?
-
@Keddy1201 不,知道这并不重要。这样的知识怎么会有用?在实际软件中,锁定的顺序不太可能得到保证或可预测,因此解锁时发生的事情同样定义明确。如果您认为这很重要,那么您做错了什么。