# @divine/synchronization 中文文档

规范地址：https://npmcn.com/package/%40divine/synchronization/

版本：1\.2\.1
npm 元数据更新时间：2022-04-05T04:48:12.524Z
中文译文更新时间：2026-11-12T12:09:24.786Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40divine/synchronization
原文对照：https://npmcn.com/package/%40divine/synchronization/?lang=original
源码仓库：https://github.com/LeviticusMB/divine-synchronization

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

- 包体积（解压后）：223 kB，36 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2018-12-08T12:34:38.356Z
- 最新版本发布：2020-07-31T15:57:32.817Z
- 近 30 天下载量：4748（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 0 个）

## 中文简介

神通同步库

## 安装

```sh
npm install @divine/synchronization
```

也可以使用：`pnpm add @divine/synchronization`、`yarn add @divine/synchronization`、`bun add @divine/synchronization`

## README

# 神通同步库

[![npm version](https://badge.fury.io/js/%40divine%2Fsynchronization.svg)](https://badge.fury.io/js/%40divine%2Fsynchronization) [![Build Status](https://travis-ci.org/LeviticusMB/divine-synchronization.svg?branch=master)](https://travis-ci.org/LeviticusMB/divine-synchronization) [![Coverage Status](https://coveralls.io/repos/github/LeviticusMB/divine-synchronization/badge.svg?branch=master)](https://coveralls.io/github/LeviticusMB/divine-synchronization?branch=master)

## 导言

许多 _Java 脚本_ 或者说 _类型脚本_ 开发者即使应该,对同步也没有多少想法. 虽然是真的 在 Java 脚本中 _节点.js_ 或者在网络上是单行道, 每当一个同步函数调用, 在把控制权交回给您之前, 可能会执行其他的指令.

这个库包含一套古典的高质量同步原始,可用于保护批判 代码中的章节.

这是写在 _类型脚本_ (这意味着它提供了极好的 IDE/editor 支持出框)并下编为 ES5,所以它在 _节点.js_ 或任何网页浏览器(a) `Promise` 但可能需要多填充).

## 关于公平

这个库中大多数同步原始人都有"公平"对应,这需要服务员提供ID 符号 。 服务员不是按FIFO的顺序被唤醒的,而是按这样的方式,在服务员面前处理每个身份证 一个重复的ID.

## 提供原始资料

本节列出由此库提供的同步原始.

### `DDRQueue`

虽然不是个古典的原始人,但根据报纸来说,这是很公平的排队 [高效的公平排队 圆-罗宾](http://www.ecs.umass.edu/ece/wolf/courses/ECE697J/papers/DRR.pdf)或多或少只是一个 _类型脚本_ 重写马特·拉文 [错误- 公正- 排队](https://github.com/mdlavin/drr-fair-queue)。 。 。 .

这个队列是同步原始的所有"公平"变体的基础.

### `Queue` 财务报告和审定财务报表 `FairQueue`

屏蔽队列( 严格 FIFO, 或公平) .

### `Condition` 财务报告和审定财务报表 `FairCondition`

条件可变执行 `notify()`, (中文(简体) ), `notifyAll` 财务报告和审定财务报表 `wait()` 方法。 。 .

### `Signal` 财务报告和审定财务报表 `FairSignal`

条件变量的一个微不足道的扩展,允许一个值传递给服务员.

_**页:1**_数字 : _别误会这个_ Pub/Sub 软件 _原始的 原始的 原始的!_ 虽然可能,但很难使用这两个 原始的作为事件发送器而不丢失消息. 见下文.

### `PubSub` 财务报告和审定财务报表 `FairPubSub`

A 类 _Pub/Sub 软件_ 原始的,具有可配置的能力,阻断出版和基于生成器的订阅,适合 用于 a `for await`\- 滚.

### `Semaphore` 财务报告和审定财务报表 `FairSemaphore`

一个古典的 semaphore 可以被信号和等待。 也有一个无阻 `take()` 可用方法.

### `Mutex` 财务报告和审定财务报表 `FairMutex`

只是一个semaphore初始化为1,并有更合适的方法名称.

### `Barrier`, (中文(简体) ), `Lightswitch` 财务报告和审定财务报表 `ReadWriteLock`

一些额外的原始人 或多或少从逐字记录 [小书 司马发](http://greenteapress.com/wp/semaphores/) 艾伦・B・多尼。 这些没有公平的变种.

## 常见问题

### @divine/synchronization 是什么？

神通同步库

### 如何安装 @divine/synchronization？

在项目目录运行 npm install @divine/synchronization，或使用 pnpm add / yarn add / bun add。

### @divine/synchronization 支持 TypeScript 吗？

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

### @divine/synchronization 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @divine/synchronization 可以商用吗？

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

### @divine/synchronization 的下载量有多少？

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

### @divine/synchronization 还在维护吗？

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

