NSPR 提供了一个执行环境,该环境促进了轻量级线程的使用。每个线程都是一个执行实体,它独立于同一进程中的其他线程进行调度。本章介绍了基本的 NSPR 线程 API。

线程拥有的资源数量有限。这些资源包括堆栈和 CPU 寄存器(包括 PC)。对于 NSPR 客户端,线程由指向类型为 PRThread 的不透明结构的指针表示。线程由显式客户端请求创建,并且在从其根函数返回或进程异常终止之前一直保持有效的独立执行实体。线程是关键资源,因此需要一些管理。要同步线程的终止,您可以将其与另一个线程 **连接**(请参阅 PR_JoinThread)。连接线程提供了确凿的证据,证明目标线程已终止并已完成对线程可以访问的资源以及线程本身资源的操作。

有关 NSPR 线程模型的概述以及说明其用法的示例代码,请参阅 NSPR 简介

有关与线程同步相关的 API 参考信息,请参阅 条件变量

线程类型和常量

线程函数

此处描述的大多数函数都接受指向线程的指针作为参数。NSPR 不会检查线程的有效性。调用者有责任确保线程有效。这些函数对无效线程的影响未定义。

创建、连接和识别线程

控制线程优先级

有关 NSPR 控制线程优先级方式的概述,请参阅 设置线程优先级

使用 PR_CreateThread 创建线程时,可以设置线程的 NSPR 优先级。创建线程后,您可以使用以下函数获取和设置其优先级

控制每个线程的私有数据

您可以使用这些函数将私有数据与进程中的每个线程关联

中断和让步

  • PR_Interrupt 请求中断另一个线程。一旦目标线程收到请求通知,该请求将保留在该线程中,直到通知恰好传递一次或被清除。

  • PR_ClearInterrupt 清除先前的中断请求。

  • PR_Sleep 使线程让步给其他线程,持续指定的滴答数。

设置全局线程并发性

获取线程的作用域