- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Open Group 有一个规范 pthread_mutex_lock
, pthread_mutex_trylock
, pthread_mutex_unlock
和 friend 位于here .
该页面列出了四个互斥锁属性值:PTHREAD_MUTEX_NORMAL
, PTHREAD_MUTEX_ERRORCHECK
, PTHREAD_MUTEX_RECURSIVE
, 和 PTHREAD_MUTEX_DEFAULT
.
所有的值都是互斥的吗?在调试配置中,我们是否允许 OR
那些值(value)观在一起?例如,我希望在 Debug 中进行完整的错误检查,PTHREAD_MUTEX_ERRORCHECK | PTHREAD_MUTEX_RECURSIVE
也是如此。一个有效的配置?
我问的原因是我发现了一个错误 pthread_mutexattr_settype
.我不确定它是否有效配置和 OS X 实现错误;或者如果它是无效的配置和预期的标准行为。如果是 OS X 错误,我仍然可以在其他平台上的调试配置中享受增强的错误检查。
最佳答案
互斥锁只能是一种“类型”。你不能把它们结合起来。
无论如何,这样做真的没有意义 - PTHREAD_MUTEX_ERRORCHECK
如果您尝试重新锁定已被同一线程锁定的互斥锁,则互斥锁总是返回错误,而 PTHREAD_MUTEX_RECURSIVE
在这种情况下互斥总是成功的。在其他错误检查情况下(解锁另一个线程锁定的互斥锁,以及解锁未锁定的互斥锁)PTHREAD_MUTEX_ERRORCHECK
和 PTHREAD_MUTEX_RECURSIVE
具有相同的行为(总是返回错误)。
这意味着您的 PTHREAD_MUTEX_RECURSIVE
互斥体应该在“调试”版本中保持相同的类型,但替换 PTHREAD_MUTEX_ERRORCHECK
可能是有意义的。为 PTHREAD_MUTEX_DEFAULT
和 PTHREAD_MUTEX_NORMAL
互斥体。
关于pthreads - PTHREAD_MUTEX_* 和 PTHREAD_MUTEX_ERRORCHECK 是否互斥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181656/
Open Group 有一个规范 pthread_mutex_lock , pthread_mutex_trylock , pthread_mutex_unlock和 friend 位于here .
请回答经典问题;我没有从代码中找到确认;C语言。我在 Windows 上运行以下代码。 /* This is an implementation of the threads API of POSIX
我是一名优秀的程序员,十分优秀!