MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
scoped_thread类 参考

作用域线程类 更多...

#include <scoped_thread.hpp>

Public 类型

using id = thread::id
 线程ID类型
using native_handle_type = thread::native_handle_type
 原生句柄类型

Public 成员函数

 scoped_thread () noexcept=default
 默认构造函数
template<typename Callable, typename... Args, typename = enable_if_t< !is_same_v<remove_cvref_t<Callable>, scoped_thread>>>
 scoped_thread (Callable &&func, Args &&... args)
 构造函数
 scoped_thread (const scoped_thread &)=delete
 禁止拷贝构造
scoped_threadoperator= (const scoped_thread &)=delete
 禁止拷贝赋值
 scoped_thread (scoped_thread &&other) noexcept=default
 移动构造函数
scoped_threadoperator= (scoped_thread &&other) noexcept
 移动赋值运算符
 ~scoped_thread ()
 析构函数
void swap (scoped_thread &other) noexcept
 交换两个scoped_thread对象
MSTL_NODISCARD bool joinable () const noexcept
 检查线程是否可被等待
void join ()
 等待线程结束
void detach ()
 分离线程
MSTL_NODISCARD id get_id () const noexcept
 获取线程ID
MSTL_NODISCARD native_handle_type native_handle () const
 获取原生线程句柄
MSTL_NODISCARD stop_source get_stop_source () noexcept
 获取停止源
MSTL_NODISCARD stop_token get_stop_token () const noexcept
 获取停止令牌
bool request_stop () noexcept
 请求线程停止

详细描述

作用域线程类

提供自动停止和清理功能,在析构时会自动请求停止并等待线程结束,避免资源泄漏。

注解
支持stop_token参数自动传递

在文件 scoped_thread.hpp28 行定义.

构造及析构函数说明

◆ scoped_thread() [1/3]

scoped_thread::scoped_thread ( )
defaultnoexcept

默认构造函数

创建一个不表示任何线程的scoped_thread对象。

引用了 scoped_thread().

被这些函数引用 operator=(), operator=(), scoped_thread(), scoped_thread(), scoped_thread(), scoped_thread() , 以及 swap().

◆ scoped_thread() [2/3]

template<typename Callable, typename... Args, typename = enable_if_t< !is_same_v<remove_cvref_t<Callable>, scoped_thread>>>
scoped_thread::scoped_thread ( Callable && func,
Args &&... args )
inlineexplicit

构造函数

模板参数
Callable可调用类型
Args参数类型
参数
func要在线程中执行的函数
args传递给函数的参数

创建新线程并开始执行。如果函数接受stop_token参数,会自动传递。

在文件 scoped_thread.hpp112 行定义.

引用了 _MSTL, forward() , 以及 scoped_thread().

◆ scoped_thread() [3/3]

scoped_thread::scoped_thread ( scoped_thread && other)
defaultnoexcept

移动构造函数

参数
other要移动的scoped_thread

引用了 scoped_thread().

◆ ~scoped_thread()

scoped_thread::~scoped_thread ( )
inline

析构函数

如果线程可被等待结束,自动请求停止并等待线程结束。

在文件 scoped_thread.hpp139 行定义.

引用了 join(), joinable() , 以及 request_stop().

成员函数说明

◆ detach()

void scoped_thread::detach ( )
inline

分离线程

允许线程独立执行,不再与其关联。 分离后不能再加入或请求停止。

在文件 scoped_thread.hpp178 行定义.

◆ get_id()

MSTL_NODISCARD id scoped_thread::get_id ( ) const
inlinenoexcept

获取线程ID

返回
线程ID

在文件 scoped_thread.hpp186 行定义.

◆ get_stop_source()

MSTL_NODISCARD stop_source scoped_thread::get_stop_source ( )
inlinenoexcept

获取停止源

返回
关联的stop_source

在文件 scoped_thread.hpp202 行定义.

◆ get_stop_token()

MSTL_NODISCARD stop_token scoped_thread::get_stop_token ( ) const
inlinenoexcept

获取停止令牌

返回
关联的stop_token

在文件 scoped_thread.hpp210 行定义.

◆ join()

void scoped_thread::join ( )
inline

等待线程结束

阻塞当前线程,直到目标线程执行完成。

在文件 scoped_thread.hpp168 行定义.

被这些函数引用 ~scoped_thread().

◆ joinable()

MSTL_NODISCARD bool scoped_thread::joinable ( ) const
inlinenoexcept

检查线程是否可被等待

返回
是否可被等待

在文件 scoped_thread.hpp159 行定义.

被这些函数引用 ~scoped_thread().

◆ native_handle()

MSTL_NODISCARD native_handle_type scoped_thread::native_handle ( ) const
inline

获取原生线程句柄

返回
原生线程句柄

在文件 scoped_thread.hpp194 行定义.

◆ operator=()

scoped_thread & scoped_thread::operator= ( scoped_thread && other)
inlinenoexcept

移动赋值运算符

参数
other要移动的scoped_thread
返回
当前对象的引用

在文件 scoped_thread.hpp129 行定义.

引用了 move() , 以及 scoped_thread().

◆ request_stop()

bool scoped_thread::request_stop ( )
inlinenoexcept

请求线程停止

返回
是否成功请求停止

设置停止标志,线程可以通过检查stop_token来响应停止请求。

在文件 scoped_thread.hpp220 行定义.

被这些函数引用 ~scoped_thread().

◆ swap()

void scoped_thread::swap ( scoped_thread & other)
inlinenoexcept

交换两个scoped_thread对象

参数
other要交换的scoped_thread

在文件 scoped_thread.hpp150 行定义.

引用了 _MSTL, scoped_thread() , 以及 swap().


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