One Motor 0.5.1
RoboMaster全平台一站式电机驱动库
载入中...
搜索中...
未找到
OneMotor::Util::SpinLock类 参考

一个基础的、非递归的自旋锁。 更多...

#include <SpinLock.hpp>

Public 成员函数

void lock () noexcept
 获取锁。
 
bool try_lock () noexcept
 尝试获取锁。
 
void unlock () noexcept
 释放锁。
 

详细描述

一个基础的、非递归的自旋锁。

自旋锁是一种忙等待锁,线程在获取锁时会持续循环检查锁的状态,直到成功获取。 它适用于锁持有时间极短的场景,可以避免线程上下文切换的开销。

警告
使用自旋锁时应非常小心,长时间持有锁会导致CPU资源浪费。

成员函数说明

◆ lock()

void OneMotor::Util::SpinLock::lock ( )
noexcept

获取锁。

如果锁已被其他线程持有,则当前线程将在此处忙等待,直到获取锁为止。

◆ try_lock()

bool OneMotor::Util::SpinLock::try_lock ( )
noexcept

尝试获取锁。

返回
如果成功获取锁,返回 true;如果锁已被持有,立即返回 false,不进行等待。

◆ unlock()

void OneMotor::Util::SpinLock::unlock ( )
noexcept

释放锁。

调用此方法的线程必须已经持有了该锁。


该类的文档由以下文件生成: