thread_create 内核服务

用途

在调用进程中创建新的内核线程。

语法

#include <sys/thread.h>
tid_t thread_create ()

描述

thread_create 内核服务将在调用内核进程中创建一个新的仅内核线程。 返回线程的标识; 它在系统范围内是唯一的。

新线程不会立即开始运行; 其状态将设置为 TSIDL。 执行将在调用 kthread_start 内核服务之后开始。 如果进程在线程变得可运行之前退出,那么将立即释放线程的资源。 线程的信号掩码继承自调用线程; 将清除暂挂信号的集合。 当线程处于 TSIDL 状态时,发送到线程的信号将标记为暂挂。

如果将调用线程绑定到特定处理器,那么新线程也将绑定到该处理器。

执行环境

thread_create 内核服务只能从进程环境中进行调用。 无法直接从内核扩展中调用此服务。

返回值

成功完成后,将返回新线程的标识。 否则,将返回 -1 并调用 getuerror 内核服务检查错误代码。

错误代码

描述
EAGAIN 将超过执行系统范围内的内核线程总数或每个进程的最大内核线程数。
ENOMEM 没有足够的内存可用于创建内核线程。
ENOTSUP thread_create 服务是直接从内核扩展调用的。