百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
N

nsync

> 编程语言
开源

nsync 是一款 C 库,它导出了各种同步原语,例如互斥锁。

1.3K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

nsync 是一款 C 库,它导出了各种同步原语,例如互斥锁。

nsync 是一个 C 库,它导出了各种同步原语:锁、条件变量、一次性初始化、可等待计数器(用于屏障)和可等待位(用于取消或其他条件)。它不是 Google 的官方产品。

在某些情况下, nsync 可能是替代 pthread 原语的好选择:

  • nsync 锁是读写锁 (但效率与互斥锁相同)。
  • nsync 锁和条件变量每个只占用两个单词。
  • nsync 可在 Unix 类型系统和 Windows 上使用。 它可以直接移植到其他平台。
  • nsync 提供了条件临界区。 它们与条件变量具有相同的作用, 但通常更容易使用, 在大多数常见情况下, 速度也相媲美。 它们可以通过以下两种方式更容易使用:
  • 不需要在"等待"操作中包含 while 循环; 相反, 条件作为函数和任意指针参数传递给调用。
  • 当条件变为真时, 不需要明确唤醒或发送信号; 它们会自动检查。
  • 主要缺点是:
  • 它们在大多数其他常用同步 API 中都不支持, 因此可能不熟悉 (尽管它们可以追溯到 1960 年代)。
  • 如果线程经常在与同一锁相关的多个不同的、不成立的条件上等待, 它们可能比条件变量慢。 在此情况下, 客户端可以按照正常方式使用条件变量; 条件临界区和条件变量可以与同一锁一起使用。
  • 不同于 pthread 模型中的线程取消, nsync 等待可以通过传递给等待调用的对象来取消。 此差异在计算需要多个线程时或取消仅影响线程执行的较大操作中的子操作时可能很有用。 请参见下面的 "对锁和条件变量的扩展" 部分。

可移植性 =================== 该库旨在可移植,并且可以在仅配备 C90 编译器的系统上编译,假设编译器、操作系统或汇编程序提供了原子操作。 它能够使用

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言