# @ariestools/threads 中文文档

规范地址：https://npmcn.com/package/%40ariestools/threads/

版本：9\.0\.3
npm 元数据更新时间：2026-11-05T17:58:41.150Z
中文译文更新时间：2026-11-06T18:59:20.759Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ariestools/threads
原文对照：https://npmcn.com/package/%40ariestools/threads/?lang=original
项目主页：https://threads.js.org/
源码仓库：https://github.com/andywer/threads.js

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1 MB，209 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26
- 运行依赖：3 个
- peer 依赖：observable-fns ^0\.6
- 首次发布：2026-07-06T18:31:46.806Z
- 最新版本发布：2026-11-05T17:58:40.910Z
- 近 30 天下载量：11219（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 24 个）

## 中文简介

网络工人和工人线程如函数调用一样简单

## 安装

```sh
npm install @ariestools/threads
```

也可以使用：`pnpm add @ariestools/threads`、`yarn add @ariestools/threads`、`bun add @ariestools/threads`

## README

[![logo](https://cdn.xy.company/img/brand/XYPersistentCompany_Logo_Icon_Colored.svg)](https://xylabs.com/)

# @ riestools/ 线程

[![npm](https://img.shields.io/npm/v/@ariestools/threads.svg)](https://www.npmjs.com/package/@ariestools/threads) [![license](https://img.shields.io/npm/l/@ariestools/threads.svg)](https://github.com/xylabs/sdk-js/blob/main/LICENSE)

> 网络工人和工人线程如函数调用一样简单

> 内部地位:此单列宝内含零消费者的只公用套件. 这个 `dead.package.internal` 编号 : `dead.repo.internal` 忽视和覆盖 对于这个包是故意的.

## 安装

使用 npm :

```sh
npm install {{name}}
```

使用线条 :

```sh
yarn add {{name}}
```

使用 pnpm :

```sh
pnpm add {{name}}
```

使用包子 :

```sh
bun add {{name}}
```

## 许可证

见 [自由主义](https://npmcn.com/package/%40ariestools/threads/LICENSE) 用于许可证权利和限制的文件(LGPL-3.0-只).

## 参考文献

### 软件包

### 线程

```
### .temp-typedoc

  ### index-browser

    ### functions

      ### <a id="Transfer"></a>Transfer
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

## 调用签名

```ts
function Transfer(transferable): TransferDescriptor;
```

将可转让对象标为此类对象,因此不会进行序列化和 与主线程在信件中解析, 但可传输 拥有它到接收线程.

仅使用数组缓冲器、信件端口和少数其他特殊设备 类型对象,但它比序列化和 消灭他们.

说明: 此线索无法再次访问可转让对象 除非接收线又转移回来!

### 参数

### 可转让

`Transferable`

矩阵缓冲器,信件端口或类似.

### 回返

[`TransferDescriptor`](https://npmcn.com/package/%40ariestools/threads/#readme-../interfaces/TransferDescriptor)

### 见

[https://developers.google.com/web/updates/2011/12/可转让-Objects-Lightning-Fast 互联网档案馆的存檔,存档日期2013-12-02](https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast)

## 调用签名

```ts
function Transfer<T>(payload, transferables): TransferDescriptor;
```

将任意对象或阵列中的可转让对象标为 作为可转让对象。 他们不会被连载 并用主线,但所有权 它们将被移到接收线上.

只有数组缓冲器、信件端口和少数其他特殊类型 对象可以被转移,但比串行化和 消灭他们.

说明: 此线索无法再次访问可转让对象 除非接收线又转移回来!

### 类型参数

### T级

`T`

### 参数

### 有效载数

`T`

### 可转让

`Transferable`\[

### 回返

[`TransferDescriptor`](https://npmcn.com/package/%40ariestools/threads/#readme-../interfaces/TransferDescriptor)

### 见

[https://developers.google.com/web/updates/2011/12/可转让-Objects-Lightning-Fast 互联网档案馆的存檔,存档日期2013-12-02](https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast)

```
      ### <a id="isWorkerRuntime"></a>isWorkerRuntime
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
function isWorkerRuntime(): boolean;
```

请检查当前代码是否在网络工人的背景中运行 .

## 回返

`boolean`

如果在工人中跑步,那就是真的,否则是假的.

```
      ### <a id="registerSerializer"></a>registerSerializer
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
function registerSerializer(serializer): void;
```

注册自定义序列器,以扩展工人信息默认序列化行为.

## 参数

### 序列器

[`SerializerImplementation`](https://npmcn.com/package/%40ariestools/threads/#readme-../interfaces/SerializerImplementation)<[`JsonSerializable`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/JsonSerializable)\> 翻译:

序列器执行注册.

## 回返

`void`

```
      ### <a id="spawn"></a>spawn
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
function spawn<Exposed>(worker, options?): Promise<ExposedAs<Exposed>>;
```

喷出一丝新线. 换个新工人的例子 把它包起来 抽象层以提供透明的 API 并验证 工人已经成功初始化.

## 类型参数

### 已曝光

`Exposed` _扩展_ `WorkerFunction` | `WorkerModule`<`any`\> = (单位:千美元) `ArbitraryWorkerInterface`

## 参数

### 劳动者

`Worker`

实例 `Worker`网络工人或 `worker_threads` 工人们.

### 选项?

### 暂停?

`number`

信息暂停 。 默认: 10000或由环境变量设置.

## 回返

`Promise`<[`ExposedAs`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/ExposedAs)<`Exposed`\>>

```
    ### interfaces

      ### <a id="Pool"></a>Pool
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

串接池管理一套工人线. 用于在有限线程上运行的任务队列 货币.

## 类型参数

### 线索类型

`ThreadType` _扩展_ [`Thread`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/Thread)

## 方法

### 已完成( )

```ts
completed(allowResolvingImmediately?): Promise<any>;
```

返回当任务队列被清空后解析的诺言 . 如果任何任务失败,承诺将被拒绝.

### 参数

#### 允许解析 马上?

`boolean`

设定为 `true` 当任务队列目前为空时立即解决.

### 回返

`Promise`<`any`\> 翻译:

* * *

### 已结清()

```ts
settled(allowResolvingImmediately?): Promise<Error[]>;
```

返回当任务队列被清空后解析的诺言 . 不完成任务不会使承诺遭到拒绝.

### 参数

#### 允许解析 马上?

`boolean`

设定为 `true` 当任务队列目前为空时立即解决.

### 回返

`Promise`<`Error`\[ >\]

* * *

### 事件()

```ts
events(): Observable<PoolEvent<ThreadType>>;
```

返回可观测到的集合事件.

### 回返

`Observable`<`PoolEvent`<`ThreadType`\>>

* * *

### 队列( )

```ts
queue<Return>(task): QueuedTask<ThreadType, Return>;
```

完成一个任务,并返回一个承诺,一旦任务解除,就解决, 开始和完成.

### 类型参数

#### 返回时

`Return`

### 参数

#### 任务

`TaskRunFunction`<`ThreadType`, (中文(简体) ), `Return`\> 翻译:

一个使用线程实例并引用其的ASync函数.

### 回返

[`QueuedTask`](https://npmcn.com/package/%40ariestools/threads/#readme-QueuedTask)<`ThreadType`, (中文(简体) ), `Return`\> 翻译:

* * *

### 终止( c)

```ts
terminate(force?): Promise<void>;
```

终止所有池线.

### 参数

#### 强?

`boolean`

设定为 `true` 杀死线条 即使它不能被优雅地阻止.

### 回返

`Promise`<`void`\> 翻译:

```
      ### <a id="QueuedTask"></a>QueuedTask
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

任务已经 `pool.queued()`\-对.

## 类型参数

### 线索类型

`ThreadType` _扩展_ [`Thread`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/Thread)

### 返回时

`Return`

## 属性

### 接下来

```ts
then: <TResult1, TResult2>(onfulfilled?, onrejected?) => Promise<TResult1 | TResult2>;
```

`QueuedTask` 是可执行的,所以你可以 `await` 这个. 决定任务何时成功执行。 如果任务失败则拒绝 .

随函附上对 " 承诺 " 的解决和/或拒绝的召回.

### 类型参数

#### 特苏尔特1

`TResult1` =: `Return`

#### 特克苏尔特2

`TResult2` =: `never`

### 参数

#### 完成吗?

((单位:千美元)`value`) (中文(简体) ) `TResult1` | `PromiseLike`<`TResult1`\>) `null`

承诺解决后恢复执行 .

#### 拒绝?

((单位:千美元)`reason`) (中文(简体) ) `TResult2` | `PromiseLike`<`TResult2`\>) `null`

当承诺被拒绝时, 回调执行 .

### 回返

`Promise`<`TResult1` | `TResult2`\> 翻译:

承诺完成 永远召回.

## 方法

### 取消( )

```ts
cancel(): void;
```

排队任务可以被取消,直到池子开始运行在工人线程上.

### 回返

`void`

```
      ### <a id="Serializer"></a>Serializer
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

一个可以在消息格式和输入类型之间转换的序列器.

## 类型参数

### 老师

`Msg` =: [`JsonSerializable`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/JsonSerializable)

### 投入

`Input` =: `any`

## 方法

### 淡化( )

```ts
deserialize(message): Input;
```

### 参数

#### 消息

`Msg`

### 回返

`Input`

* * *

### 序列化( )

```ts
serialize(input): Msg;
```

### 参数

#### 投入

`Input`

### 回返

`Msg`

```
      ### <a id="SerializerImplementation"></a>SerializerImplementation
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

串行器执行,接收回倒(默认)串行器进行连锁.

## 类型参数

### 老师

`Msg` =: [`JsonSerializable`](https://npmcn.com/package/%40ariestools/threads/#readme-../type-aliases/JsonSerializable)

### 投入

`Input` =: `any`

## 方法

### 淡化( )

```ts
deserialize(message, defaultDeserialize): Input;
```

### 参数

#### 消息

`Msg`

#### 默认去除

(单位:千美元)`msg`) (中文(简体) ) `Input`

### 回返

`Input`

* * *

### 序列化( )

```ts
serialize(input, defaultSerialize): Msg;
```

### 参数

#### 投入

`Input`

#### 默认序列化

(单位:千美元)`inp`) (中文(简体) ) `Msg`

### 回返

`Msg`

```
      ### <a id="TransferDescriptor"></a>TransferDescriptor
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

描述器将一个值与其相联的可转让对象相包裹,用于零拷贝消息.

## 类型参数

### T级

`T` =: `any`

## 属性

### \[可转让美元\]

```ts
[$transferable]: true;
```

* * *

### 发送

```ts
send: T;
```

* * *

### 可转让

```ts
transferables: Transferable[];
```

```
    ### namespaces

      ### Pool

        ### type-aliases

          ### <a id="Event"></a>Event
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../../../README)

* * *

```ts
type Event<ThreadType> = PoolEvent<ThreadType>;
```

## 类型参数

### 线索类型

`ThreadType` _扩展_ [`Thread`](https://npmcn.com/package/%40ariestools/threads/#readme-../../../type-aliases/Thread) =: `any`

```
          ### <a id="EventType"></a>EventType
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../../../README)

* * *

```ts
type EventType = PoolEventType;
```

```
    ### type-aliases

      ### <a id="BlobWorker"></a>BlobWorker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type BlobWorker = typeof BlobWorkerClass;
```

从源代码blobs或字符串中分离出产工人的阶级.

```
      ### <a id="ExposedAs"></a>ExposedAs
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type ExposedAs<Exposed> = Exposed extends ArbitraryWorkerInterface ? ArbitraryThreadType : Exposed extends WorkerFunction ? FunctionThread<Parameters<Exposed>, StripAsync<ReturnType<Exposed>>> : Exposed extends WorkerModule<any> ? ModuleThread<Exposed> : never;
```

映射工人暴露的 API 类型到相应的线程类型(`FunctionThread` 或者说 `ModuleThread`) (中文(简体) ).

## 类型参数

### 已曝光

`Exposed` _扩展_ `WorkerFunction` | `WorkerModule`<`any`\> 翻译:

```
      ### <a id="FunctionThread"></a>FunctionThread
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type FunctionThread<Args, ReturnType> = ProxyableFunction<Args, ReturnType> & PrivateThreadProps;
```

一个线程将单个被曝光的函数包入 .

## 类型参数

### 参数

`Args` _扩展_ `any`\[\]= `any`\[

### 返回类型

`ReturnType` =: `any`

```
      ### <a id="JsonSerializable"></a>JsonSerializable
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type JsonSerializable = 
  | JsonSerializablePrimitive
  | JsonSerializablePrimitive[]
  | JsonSerializableObject
  | JsonSerializableObject[];
```

一个JSON相容值,可以序列化用于工人信息传递.

```
      ### <a id="ModuleThread"></a>ModuleThread
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type ModuleThread<Methods> = ModuleProxy<Methods> & PrivateThreadProps;
```

线程包接一个已曝光的函数模块 .

## 类型参数

### 方法

`Methods` _扩展_ `ModuleMethods` =: `any`

```
      ### <a id="Thread"></a>Thread
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type Thread = ThreadType;
```

再出口 主类型模块的线索类型 .

```
      ### <a id="Worker"></a>Worker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type Worker = WorkerType;
```

工人执行。 要么是网络工人 要么是节点工.

```
    ### variables

      ### <a id="BlobWorker"></a>BlobWorker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
BlobWorker: typeof BlobWorker;
```

从源代码blobs或字符串中分离出产工人的阶级.

```
      ### <a id="DefaultSerializer"></a>DefaultSerializer
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
const DefaultSerializer: Serializer<JsonSerializable>;
```

处理错误实例并传递其他值的默认序列器 .

```
      ### <a id="Pool"></a>Pool
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
Pool: <ThreadType>(spawnWorker, optionsOrSize?) => WorkerPool<ThreadType> & object;
```

串接池构造器. 创建新池并产出它的工人线程.

## 声明类型

### 事件类型

```ts
EventType: typeof PoolEventType;
```

```
      ### <a id="Thread"></a>Thread
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
Thread: object;
```

线索工具函数 。 用于管理或检查 `spawn()`\- 有线.

## 声明类型

### 错误( )

```ts
errors<ThreadT>(thread): Observable<Error>;
```

返回可用于订阅线程中发生的所有错误的可观测值 .

### 类型参数

#### 线索T

`ThreadT` _扩展_ `Thread`

### 参数

#### 线程

`ThreadT`

### 回返

`Observable`<`Error`\> 翻译:

### 事件()

```ts
events<ThreadT>(thread): Observable<WorkerEvent>;
```

返回一个可以用来订阅线程中发生的内部事件的可观测数据 。 用于调试 .

### 类型参数

#### 线索T

`ThreadT` _扩展_ `Thread`

### 参数

#### 线程

`ThreadT`

### 回返

`Observable`<`WorkerEvent`\> 翻译:

### 终止( c)

```ts
terminate<ThreadT>(thread): Promise<void>;
```

终结一线. 记住在用完后终止每条线程 .

### 类型参数

#### 线索T

`ThreadT` _扩展_ `Thread`

### 参数

#### 线程

`ThreadT`

### 回返

`Promise`<`void`\> 翻译:

```
      ### <a id="Worker"></a>Worker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
Worker: typeof WorkerImplementation;
```

工人执行。 要么是网络工人 要么是节点工.

```
  ### index-node

    ### functions

      ### <a id="isWorkerRuntime"></a>isWorkerRuntime
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
function isWorkerRuntime(): boolean;
```

检查当前代码是否在一个节点.js工人线条内运行 .

## 回返

`boolean`

如果运行在工人线上(不是主线),则不正确.

```
    ### type-aliases

      ### <a id="BlobWorker"></a>BlobWorker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type BlobWorker = typeof BlobWorkerClass;
```

从源代码blobs或字符串中分离出产工人的阶级.

```
      ### <a id="Worker"></a>Worker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
type Worker = WorkerType;
```

工人执行。 要么是网络工人 要么是节点工.

```
    ### variables

      ### <a id="BlobWorker"></a>BlobWorker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
BlobWorker: typeof BlobWorker;
```

从源代码blobs或字符串中分离出产工人的阶级.

```
      ### <a id="Worker"></a>Worker
```

[**@ riestools/ 线程**](https://npmcn.com/package/%40ariestools/threads/#readme-../../README)

* * *

```ts
Worker: typeof WorkerImplementation;
```

工人执行。 要么是网络工人 要么是节点工.

## 贷项

[由XY实验室制造](https://xylabs.com/)

## 常见问题

### @ariestools/threads 是什么？

网络工人和工人线程如函数调用一样简单

### 如何安装 @ariestools/threads？

在项目目录运行 npm install @ariestools/threads，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：observable-fns（^0\.6）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @ariestools/threads 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ariestools/threads 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ariestools/threads 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=26。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ariestools/threads 可以商用吗？

@ariestools/threads 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ariestools/threads 的下载量有多少？

根据 npm 官方下载统计，@ariestools/threads 在 2026/10/07 – 2026/11/05 这 30 天内被下载 11,219 次，日均约 374 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ariestools/threads 还在维护吗？

最新版本 9\.0\.3 发布于 2026/11/06（2 天前）；至今共发布 24 个版本，其中过去 12 个月发布了 24 个；首次发布于 2026/07/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

