gpt4 book ai didi

c - 如何检查是否未获取互斥量?

转载 作者:太空狗 更新时间:2023-10-29 15:11:15 24 4
gpt4 key购买 nike

我想检查互斥体是否空闲且未被获取。

我尝试使用 pthread_mutex_trylock(mutex_object);

但是,如果获得了互斥量,则返回 0,如果出现错误,则返回 -1

如果没有获得互斥体怎么办?它会返回任何值吗?

最佳答案

pthread_mutex_trylock 不返回“-1 错误”。它从 errno.h 中的可能值返回一个“错误”代码。其中之一,EBUSY,意味着另一个线程已经拥有锁。除非您的程序中存在严重错误,否则您不应观察到来自 pthread_mutex_trylock 的任何其他错误代码。

请注意,对于递归互斥量,返回值 0 不区分互斥量先前已解锁的情况和调用线程已拥有它的情况。在任何情况下,如果 pthread_mutex_trylock 返回 0,您有责任通过 pthread_mutex_unlock 解锁它,因为您成为所有者(或者,在递归情况下,您的锁计数增加1) 在成功的 pthread_mutex_trylock 上。

关于c - 如何检查是否未获取互斥量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com