23、原子操作与并行编程:内存回收与线程池技术解析

原子操作与线程池技术解析

原子操作与并行编程:内存回收与线程池技术解析

1. 原子操作中的内存安全回收

在原子编程里,内存回收是个关键问题。传统方法存在一些问题,比如线程会给固定的关键部分引入长时间延迟,导致长时间的周期和垃圾堆积。不过,API 具备任意重新固定的能力,解决了这些问题。

有三种常见的内存回收技术:
- 引用计数 :这种方法开销最大,需要谨慎地将其融入数据结构,除非 Arc 能满足需求。
- 危险指针 :需要识别危险情况,也就是那些在没有某种协调机制的情况下无法回收内存的内存访问操作。每次访问危险区域时都会产生开销,如果需要遍历危险结构,成本会很高。
- 基于周期的回收 :在固定线程时会产生开销,这标志着一个周期的开始,可能需要新固定的线程参与垃圾回收。但在固定之后的内存访问操作中不会产生额外开销,如果需要进行遍历操作或者能在固定部分包含多个内存操作,这种方法优势明显。

以下表格总结了这三种技术的特点:
| 技术名称 | 开销情况 | 适用场景 |
| ---- | ---- | ---- |
| 引用计数 | 开销大 | Arc 能满足需求或需谨慎融入数据结构时 |
| 危险指针 | 每次访问危险区域有开销 | 需识别危险情况的场景 |
| 基于周期的回收 | 固定线程时开销,后续无额外开销 | 有遍历操作或可包含多内存操作的场景 |

crossbeam 库表现出色,除非你有专门设计的原子数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值