🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
ast::Thread类 参考

#include <Thread.hpp>

Public 成员函数

 Thread ()=default
 
 Thread (std::function< void()> func)
 
 ~Thread ()
 
 Thread (const Thread &)=delete
 
Thread & operator= (const Thread &)=delete
 
 Thread (Thread &&other) noexcept
 
Thread & operator= (Thread &&other) noexcept
 
bool joinable () const
 
void join ()
 
void detach ()
 
void swap (Thread &other) noexcept
 

详细描述

线程

接口是 std::thread 的一个子集,用法与它一致:构造即启动, 析构时若仍 joinable 则调用 std::terminate,仅可移动、不可拷贝。

GCC 6 起 std::thread::_State 的析构、_M_start_thread 与 typeinfo 挂在 GLIBCXX_3.4.22 下, 而 Ubuntu 16.04,GCC 5.4只有到 GLIBCXX_3.4.21,使用该类可以避免在这些发行版上运行时出错。

构造及析构函数说明

◆ Thread()

ast::Thread::Thread ( std::function< void()> func)
explicit

构造并立即启动线程

参数
func线程函数
注解
启动失败时抛出 std::system_error,与 std::thread 一致

成员函数说明

◆ detach()

void ast::Thread::detach ( )

分离线程,此后不再可 join

注解
分离后的线程退出时会自行回收资源,不要再对它调用 join

◆ joinable()

bool ast::Thread::joinable ( ) const

线程是否可 join

线程已结束或被 detach 之后,本函数返回 false


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