线程
更多...
#include <threads.hpp>
|
virtual void | run () |
| 线程处理函数,默认调用内部的Runable,派生线程类可重写此函数 更多...
|
|
线程
在文件 threads.hpp 第 92 行定义.
typedef void*(* winux::Thread::ThreadFuncPtr) (void *param) |
winux::Thread::Thread |
( |
bool |
isStartup = false | ) |
|
|
inlineexplicit |
构造函数1
isStartup=false时不立即创建线程,用户手动调用startup()函数创建线程 isStartup=true时立即创建一个线程,以run()作为线程处理函数,用户需要派生Thread类重写run()函数以定义自己的处理
在文件 threads.hpp 第 121 行定义.
template<typename _Fx , typename... _ArgType>
winux::Thread::Thread |
( |
bool |
isStartup, |
|
|
_Fx |
routine, |
|
|
_ArgType &&... |
arg |
|
) |
| |
|
inlineexplicit |
virtual winux::Thread::~Thread |
( |
| ) |
|
|
inlinevirtual |
winux::Thread::Thread |
( |
Thread && |
other | ) |
|
int winux::Thread::detach |
( |
| ) |
|
使线程分离
一个可连接线程启动后必须调用joined()来等待运行完毕,内部资源才能正确释放。调用此detach()方法后不能再调用joined()方法。 此时,线程函数若有访问Thread对象的数据,必须保证线程运行结束前Thread对象的存在,但是因为没有了joined()方法的同步,你需要自己设计代码来保证对象不会提前释放。 设置删除器可以一定程度上简化代码,如果Thread对象设置了删除器,那默认的线程函数处理时会在运行结束前调用删除器释放Thread对象。 若你调用了startupEx()提供自己的线程处理函数,那就需要自己设计代码来保证Thread对象不会提前释放。
static void winux::Thread::Exit |
( |
void * |
exitVal = NULL | ) |
|
|
static |
void* winux::Thread::getExitVal |
( |
| ) |
const |
|
inline |
static void* winux::Thread::Join |
( |
Thread & |
otherThread | ) |
|
|
static |
调用者线程连接指定其他线程
退出状态由返回值或者otherThread.getExitVal()取得
void* winux::Thread::joined |
( |
| ) |
|
virtual void winux::Thread::run |
( |
| ) |
|
|
protectedvirtual |
线程处理函数,默认调用内部的Runable,派生线程类可重写此函数
template<typename _Dt >
Thread& winux::Thread::setCustomDeleter |
( |
_Dt |
fn | ) |
|
|
inline |
Thread& winux::Thread::setDefaultDeleter |
( |
| ) |
|
|
inline |
Thread& winux::Thread::setExitVal |
( |
void * |
exitVal | ) |
|
|
inline |
template<typename _Fx , typename... _ArgType>
Thread& winux::Thread::setRunable |
( |
_Fx |
routine, |
|
|
_ArgType &&... |
arg |
|
) |
| |
|
inline |
int winux::Thread::startup |
( |
| ) |
|
实际创建一个线程
以run()作为线程处理,用户可继承Thread类重写run()方法以定义自己的处理;也可以setRunable()设置一个可运行对象作为线程处理例程 startup()会设置_isRunning为true,在默认的线程处理函数里,调用完run()方法后设置_isRunning为false
template<typename _Fx , typename... _ArgType>
int winux::Thread::startup |
( |
_Fx |
routine, |
|
|
_ArgType &&... |
arg |
|
) |
| |
|
inline |
int winux::Thread::startupEx |
( |
ThreadFuncPtr |
startRoutine, |
|
|
void * |
param |
|
) |
| |
该类的文档由以下文件生成: