【问题标题】:Mutex ownership copied with new thread使用新线程复制的互斥体所有权
【发布时间】:2015-05-18 17:57:21
【问题描述】:

如果一个 pthread 拥有一个 mutex,然后调用 pthread_create,那么新线程是拥有该 mutex,还是两者都拥有,还是只拥有原始线程?

【问题讨论】:

    标签: c++ pthreads mutex


    【解决方案1】:

    原始线程仍然拥有互斥锁。创建线程对互斥体所有权没有影响。

    如果是其他方式,调用可能创建线程的代码将非常困难,因为该代码必须知道它持有的每个互斥体。

    例如,假设您实现了一些具有sort 算法的集合类。您不知道调用者在调用 sort 函数时可能持有什么互斥锁。如果您想更改sort 算法以使用一些辅助线程,您会怎么做?您如何处理您可能持有或可能不持有的互斥锁?这会造成不可能的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多