Namespaces
Variants

mtx_trylock

From cppreference.net
定义于头文件 <threads.h>
int mtx_trylock ( mtx_t * mutex ) ;
(C11 起)

尝试无阻塞地锁定指向 mutex 的互斥锁。若互斥锁已被锁定则立即返回。

对同一互斥量的先前 mtx_unlock 调用与此操作形成 同步关系 (若此操作成功),且所有针对特定互斥量的锁定/解锁操作构成单一全序(类似于原子变量的修改顺序)

目录

参数

mutex - 指向要锁定的互斥锁的指针

返回值

thrd_success 表示操作成功, thrd_busy 表示互斥锁已被锁定或由于伪失败未能获取可用互斥锁, thrd_error 表示发生错误。

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C标准。

DR 适用范围 发布时的行为 正确行为
DR 470 C11 mtx_trylock 不允许虚假失败 允许

参考文献

  • C17 标准 (ISO/IEC 9899:2018):
  • 7.26.4.5 mtx_trylock 函数 (页: 278-279)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.26.4.5 mtx_trylock 函数 (页: 382)

参考

阻塞直至锁定互斥锁
(函数)
阻塞直至锁定互斥锁或超时
(函数)
解锁互斥锁
(函数)
C++ 文档 for mutex::try_lock
C++ 文档 for timed_mutex::try_lock
C++ 文档 for recursive_mutex::try_lock
C++ 文档 for recursive_timed_mutex::try_lock