Crossbeam —— Rust 并发库
Crossbeam 是一款 Rust 并发库,提供了一系列用于并发编程的工具:
Atomics
AtomicCell
, 线程安全的可变内存位置 (no_std)AtomicConsume
, 用于从具有"consume"顺序的原始原子类型中读取 (no_std)
数据结构
deque
, 用于构建任务调度程序的 work-stealing 双端队列ArrayQueue
, 有界 MPMC 队列,在构造时分配一个固定容量的缓冲区 (alloc)SegQueue
, 无界 MPMC 队列,按需分配小的缓冲区、段 (alloc)
内存管理
epoch
, 基于 epoch 的垃圾回收器 (alloc)
线程同步
channel
, 使用多生产者多消费者渠道进行消息传递Parker
, a thread parking primitive.ShardedLock
, 具有快速并发读取的分片读写锁 (reader-writer lock)WaitGroup
, 用于同步某些计算的开始或结束

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 3D 沙盒游戏之地面网格设计
背景— 最近小组在探索研发一个 3D 的沙盒小游戏 demo。对于沙盒游戏来说,地面是必不可少的元素。为了降低难度,在这个 demo 中,地面将不涉及 y 轴坐标的变化,也就是使用一个与 xOz 平面平行的平面,对应到现实世界中,就是一块不带任何起伏的平地。本篇文章以 babylon.js 作为框架进行说明。期望的效果类似下图(截图来自于手游部落冲突): 目标— 首先我们需要在 xOz 平面上创建一块矩形作为地面。为了不让地面看起来过于单调,需要给地面贴上一些纹理,比如草地、鹅卵石路等等;在此基础上,纹理还需要可以局部替换,比如可以实现一条在草地中央的鹅卵石小路。同时,在地面上,需要放置其他模型(比如人物、建筑等),为了避免模型在移动或者新增的时候,出现重叠的情况,还得知道当前地面上对应的位置的状态(是否已被模型占用),因此在新增或移动模型的时候,需要获取当前模型在地面上的具体位置信息。基于以上需求,可以梳理为以下两个大目标: 完成地面初始化,且可以改变特定位置的纹理 获取模型在地面上的位置信息 围绕这两个目标,下面通过两个实现篇,给大家展示下如何一步步实现~ 实现之地面创建篇— 首先...
- 下一篇
面对巨头的垄断欺凌,Earthly 毅然决然从 “闭源” 转开源
Earthly 是一个 CI/CD 框架,允许开发者在本地开发 CI/CD 管道,并在任何地方运行它们。Earthly 利用容器来执行管道。这使得它具有可独立、可重复、可移植和并行这样的特点。目前 Earthly 在 GitHub 的 Star 数量为 6.5K。 过去为了保护 Earthly 自己的利益,并围绕它建立一个可持续的业务,他们一直在使用 BSL(Business Source License,未获得 OSI 认可)这样的 source-available(源码可见)的许可证。BSL 类似于开源许可证,但有额外的限制,使用限制性更强的许可证主要原因就是为了防止竞争对手将你的产品作为一种服务来提供,而之前这种类型的许可证更主要地用于数据库领域。 自 2020 年年初首次提交代码以来,Earthly 已经走过了两个年头。根据官方社交媒体下方的互动信息来看,在过去两年时间里,Earthly 不断增长的用户群大多都对 BSL 许可证没有意见,但在少数情况下,BSL 许可证也会成为劝退部分用户的一个原因。 虽然 Earthly 在很短的时间内取得了快速增长,但也因为潜在用户对 BSL...
相关文章
文章评论
共有0条评论来说两句吧...