3 个版本
0.1.2 | 2021年10月16日 |
---|---|
0.1.1 | 2020年4月3日 |
0.1.0 | 2020年4月3日 |
196 在 操作系统 中排名
每月下载量 10,785
在 8 个crate(3 个直接)中使用
13KB
211 行
亲和力
此crate提供了一种统一的方式,用于设置当前正在运行的线程和进程的核心亲和力。
用法
use affinity::*;
fn bind_even_cores() {
// Select every second core
let cores: Vec<usize> = (0..get_core_num()).step_by(2).collect();
println!("Binding thread to cores : {:?}", &cores);
// Output : "Binding thread to cores : [0, 2, 4, 6]"
set_thread_affinity(&cores).unwrap();
println!("Current thread affinity : {:?}", get_thread_affinity().unwrap());
// Output : "Current thread affinity : [0, 2, 4, 6]"
}
完整的示例 在此。
功能
- 绑定到多个核心
- 返回当前已绑定的核心列表
- 可靠地获取核心数量(使用 num_cpus)
- 允许调用者处理错误
- 支持Windows上新子进程的亲和力继承(通过
set_process_affinity()
)
平台
目前仅在以下平台测试
- Windows
- Linux (Arch x64)
许可证
贡献
除非你明确声明,否则根据Apache-2.0许可证定义的,你提交给作品包含的任何贡献都应双许可,如上所述,没有任何附加条款或条件。
依赖关系
~0–7MB
~41K SLoC