PRThreadState¶
线程的线程状态可以是可连接的或不可连接的。
语法¶
#include <prthread.h>
typedef enum PRThreadState {
PR_JOINABLE_THREAD,
PR_UNJOINABLE_THREAD
} PRThreadState;
枚举器¶
PR_UNJOINABLE_THREAD
当线程从根函数返回时,线程终止隐式发生。无法预先确定分配给线程的资源的释放时间。使用
PR_UNJOINABLE_THREAD
状态创建的线程不能用作 PR_JoinThread 的参数。PR_JOINABLE_THREAD
可连接的线程引用在从其根函数返回后保持有效,直到调用 PR_JoinThread。这种方法有助于管理进程的关键资源。
描述¶
线程是一种关键资源,必须进行管理。
线程的生命周期从其创建时开始,到从其根函数返回时结束。当它从其根函数返回时会发生什么取决于创建线程时传递给 PR_CreateThread 的线程状态。
如果线程被创建为可连接线程,则它在从其根函数返回后继续存在,直到另一个线程连接它。连接过程允许严格同步线程终止,因此促进了有效的资源管理。
如果线程被创建为不可连接(也称为分离)线程,则它在从其根函数返回后自行终止并清理自身。这导致在线程的根函数返回后和线程完成自行终止之前存在一些模糊性。