如果pthread拥有互斥锁然后调用pthread_create,新线程是否拥有互斥锁,同时执行这两个操作,还是仅执行原始线程?
答案 0 :(得分:3)
原始线程仍然拥有互斥锁。创建线程对互斥锁所有权没有影响。
如果是其他任何方式,调用可能创建线程的代码将非常困难,因为该代码必须知道它所持有的每个互斥锁。
例如,假设您实现了一个具有program.description.split(' ').each_with_index do |word, index|
算法的集合类。您不知道调用者在调用sort
函数时可能持有的互斥锁。如果要将sort
算法更改为使用一些辅助线程,您会怎么做?您如何处理可能存在或可能不存在的互斥锁?这会造成一种不可能的情况。