我对如何使用 pthread 声明递归互斥锁有点困惑。我尝试做的是一次只有一个线程能够运行一段代码(包括函数),但在怀疑之后我发现使用互斥锁不起作用,而我应该使用递归互斥锁。这是我的代码:
pthread_mutex_lock(&mutex); // LOCK
item = queue_peek(queue); // get last item in queue
item_buff=item; // save item to a buffer
queue_removelast(queue); // remove last item from queue
pthread_mutex_unlock(&mutex); // UNLOCK
所以我尝试做的只是从队列中连续读取/删除。
问题是没有任何关于如何声明递归互斥锁的例子。或者可能有一些,但他们不为我编译。