就是我有一个线程会一直请求lock(mutex),我想初始化mutex为0让这个线程一开始请求不到锁。因为默认方式pthread_mutex_t mutex;就像mutex=1一样是可以被lock的
就是我有一个线程会一直请求lock(mutex),我想初始化mutex为0让这个线程一开始请求不到锁。因为默认方式pthread_mutex_t mutex;就像mutex=1一样是可以被lock的
这个需求很常见,但用直接用lock做比较绕
pthread多线程库本身有一个条件变量系列的函数你了解一下
pthread_cond_*
下面来自百科
条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起
7 回答5.3k 阅读
3 回答2k 阅读✓ 已解决
4 回答4k 阅读
2 回答3.9k 阅读✓ 已解决
2 回答5.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
默认是未锁定的。你可以初始化之后,显示的lock一下。
不过没想明白,你为什么要这样做。