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

一个对底层线程实现(如 std::thread)的封装器。 更多...

#include <Othread.hpp>

Public 类型

using ThreadFunc = std::function<void()>
 线程执行函数的类型定义。
 

Public 成员函数

 Othread (const ThreadFunc &func) noexcept
 构造函数,创建一个新的线程并立即开始执行。
 
 Othread () noexcept
 默认构造函数,创建一个空的线程对象,不开始执行。
 
 ~Othread ()
 析构函数。
 
 Othread (const Othread &)=delete
 
 Othread (Othread &&)=delete
 
Othreadoperator= (const Othread &)=delete
 
Othreadoperator= (Othread &&)=delete
 
bool start (const ThreadFunc &func) noexcept
 启动线程执行。
 
bool join () noexcept
 等待线程执行完成。
 
bool detach () noexcept
 将线程从当前对象中分离。
 
bool joinable () const noexcept
 检查线程是否可加入。
 

详细描述

一个对底层线程实现(如 std::thread)的封装器。

此类提供了一个基本的线程接口,用于启动、加入(join)或分离(detach)线程。 它旨在简化线程管理,并确保在析构时线程能够被正确处理(默认尝试加入)。 此类是不可拷贝和不可移动的,以防止对底层线程句柄的意外操作。

构造及析构函数说明

◆ Othread()

OneMotor::thread::Othread::Othread ( const ThreadFunc & func)
explicitnoexcept

构造函数,创建一个新的线程并立即开始执行。

参数
func要在线程中执行的函数。

◆ ~Othread()

OneMotor::thread::Othread::~Othread ( )

析构函数。

如果线程是可加入的(joinable),则会自动尝试加入该线程。 如果加入失败,为了防止程序终止,它将尝试分离线程。

成员函数说明

◆ detach()

bool OneMotor::thread::Othread::detach ( )
noexcept

将线程从当前对象中分离。

分离后,线程将在后台独立运行,Othread对象不再拥有该线程。

返回
如果成功分离线程,返回 true;如果线程未启动、已加入或已分离,返回 false

◆ join()

bool OneMotor::thread::Othread::join ( )
noexcept

等待线程执行完成。

返回
如果成功加入线程,返回 true;如果线程未启动、已加入或已分离,返回 false

◆ joinable()

bool OneMotor::thread::Othread::joinable ( ) const
nodiscardnoexcept

检查线程是否可加入。

返回
如果线程正在执行且尚未被加入或分离,返回 true

◆ start()

bool OneMotor::thread::Othread::start ( const ThreadFunc & func)
noexcept

启动线程执行。

参数
func要在线程中执行的函数。
返回
如果成功启动线程,返回 true;如果线程已启动或函数无效,返回 false

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