PRThreadScope

NSPR 线程的范围,作为参数传递给 PR_CreateThread 或由 PR_GetThreadScope 返回。

语法

#include <prthread.h>

typedef enum PRThreadScope {
   PR_LOCAL_THREAD,
   PR_GLOBAL_THREAD
   PR_GLOBAL_BOUND_THREAD
} PRThreadScope;

枚举器

PR_LOCAL_THREAD

本地线程,由 NSPR 在进程内本地调度。

PR_GLOBAL_THREAD

全局线程,由主机操作系统调度。

PR_GLOBAL_BOUND_THREAD

全局绑定(内核)线程,由主机操作系统调度

描述

类型为 PRThreadScope 的枚举器指定线程的调度方式:由 NSPR 在进程内本地调度(本地线程)还是由主机全局调度(全局线程)。

全局线程由主机操作系统调度,并与主机操作系统上的所有其他线程竞争资源。它们受到相当复杂的调度技术的约束。

本地线程由 NSPR 在进程内调度。假设进程是全局调度的,但 NSPR 可以无需系统干预即可操作本地线程。在大多数情况下,这会导致明显的性能提升。

但是,在需要 NSPR 区分全局线程和本地线程的系统上,全局线程总是需要执行任何形式的 I/O。如果线程可能执行大量 I/O,则尽早将其设为全局线程可能是合理的。

在不区分本地线程和全局线程的系统上,NSPR 会静默忽略调度请求。要查找线程的范围,请调用 PR_GetThreadScope