16 个不稳定版本 (4 个破坏性更新)

使用旧的Rust 2015

0.8.1 2023年8月3日
0.8.0 2023年1月26日
0.7.6 2022年12月1日
0.7.5 2022年11月29日
0.5.9 2017年10月10日

#15 in 操作系统

Download history 87066/week @ 2024-04-02 84862/week @ 2024-04-09 91974/week @ 2024-04-16 90978/week @ 2024-04-23 83565/week @ 2024-04-30 84057/week @ 2024-05-07 92094/week @ 2024-05-14 89927/week @ 2024-05-21 102456/week @ 2024-05-28 115187/week @ 2024-06-04 117792/week @ 2024-06-11 97150/week @ 2024-06-18 110337/week @ 2024-06-25 102866/week @ 2024-07-02 109120/week @ 2024-07-09 96817/week @ 2024-07-16

每月下载量435,615
用于 178 个crate (79 直接使用)

MIT/Apache

20KB
433

core_affinity_rs 是一个用于管理CPU亲和性的Rust crate。它目前支持Linux、Mac OSX和Windows。

文档

Linux Status Build status

示例

此示例展示了如何为每个可用的处理器创建一个线程,并将每个线程固定在其对应的处理器上。

extern crate core_affinity;

use std::thread;

// Retrieve the IDs of all cores on which the current
// thread is allowed to run.
// NOTE: If you want ALL the possible cores, you should
// use num_cpus.
let core_ids = core_affinity::get_core_ids().unwrap();

// Create a thread for each active CPU core.
let handles = core_ids.into_iter().map(|id| {
    thread::spawn(move || {
        // Pin this thread to a single CPU core.
        let res = core_affinity::set_for_current(id);
        if (res) {
          // Do more work after this.
        }
    })
}).collect::<Vec<_>>();

for handle in handles.into_iter() {
    handle.join().unwrap();
}

平台

core_affinity_rs 应该在Linux、Windows、Mac OSX、FreeBSD和Android上工作。

core_affinity_rs 在以下平台上持续测试

  • x86_64-unknown-linux-gnu (Linux)
  • i686-unknown-linux-gnu
  • x86_64-unknown-linux-musl (Linux w/ MUSL)
  • i686-unknown-linux-musl
  • x86_64-apple-darwin (Mac OSX)
  • i686-apple-darwin
  • x86_64-pc-windows-msvc (Windows)
  • i686-pc-windows-msvc
  • x86_64-pc-windows-gnu
  • i686-pc-windows-gnu

core_affinity_rs 持续进行交叉编译

  • arm-unknown-linux-gnueabihf
  • aarch64-unknown-linux-gnu
  • mips-unknown-linux-gnu
  • aarch64-unknown-linux-musl
  • i686-linux-android
  • x86_64-linux-android
  • arm-linux-androideabi
  • aarch64-linux-android

依赖项

~28–250KB