1. 处理器
需要安装num_cpus
库,可通过cargo add num_cpus
命令安装
[dependencies] |
1.1 检查逻辑 cpu 内核的数量
使用 [num_cpus::get]
显示当前机器中的逻辑 CPU
内核的数量。
fn main() { |
- 运行
cargo run
输出
逻辑核心数为 2 |
文章作者: 泰山
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 泰山!
相关推荐
2023-03-14
【Rust Cookbook系列】一 算法
1. 生成随机值 需要安装rand库,可通过cargo add rand命令安装 [dependencies]rand = "0.8.5" 1.1 生成随机数 在随机数生成器 rand::Rng 的帮助下,通过 rand::thread_rng 生成随机数。可以开启多个线程,每个线程都有一个初始化的生成器。整数在其类型范围内均匀分布,浮点数是从 0均匀分布到 1,但不包括 1。 use rand::Rng;fn main() { let mut rng = rand::thread_rng(); let n1: u8 = rng.gen(); let n2: u16 = rng.gen(); println!("随机生成 u8: {}", n1); println!("随机生成 u16: {}", n2); println!("随机生成 u32: {}",...
2023-03-22
【Rust Cookbook系列】二 命令行
1. 参数解析 需要安装clap库,可通过cargo add clap --features derive命令安装 [dependencies]clap = { version = "4.1.11", features = ["derive"] } 1.1 解析命令行参数 此应用程序使用 clap 构建器样式描述其命令行界面的结构。文档还提供了另外两种可用的方法去实例化应用程序。在构建器样式中,short 和 long 选项控制用户将要键入的标志;short 标志看起来像 -f,long 标志看起来像 --file。 use clap::{Arg, Command};fn main() { let matches = Command::new("命令行-测试") .version("0.1.0") .author("Hackerman Jones...
2023-03-28
【Rust Cookbook系列】三 压缩
1. 使用 tar 包 需要安装flate2和tar库,可通过cargo add flate2 和cargo add tar 命令安装 [dependencies]flate2 = "1.0.25"tar = "0.4.38" 1.1 压缩目录为 tar 包 压缩 /root/testtar目录内的内容到 archive.tar.gz 压缩包中。创建一个用 GzEncoder 和 tar::Builder 包裹的 File。使用 Builder::append_dir_all,将 /root/testtar目录内的内容递归添加到 backup/code路径下的归档文件中。在将数据写入压缩包 archive.tar.gz 之前,GzEncoder 负责清晰地将数据压缩。 /root/testtar目录结构如下: /root/testtar/├── Cargo.lock_copy├── Cargo.toml_copy└── src-rust └── main.rs 详细代码如下: use...
2023-04-07
【Rust Cookbook系列】四 并行/并发
1. 显式线程 1.1 生成短期线程 需要安装crossbeam库,可通过cargo add crossbeam 命令安装 [dependencies]crossbeam = "0.8.2" 使用 crossbeam crate 为并发和并行编程提供了数据结构和函数。Scope::spawn 生成一个新的作用域线程,该线程确保传入 crossbeam::scope 函数的闭包在返回之前终止,这意味着您可以从调用的函数中引用数据。 本实例将数组一分为二,并在不同的线程中并行计算。 extern crate crossbeam;fn main() { let arr = &[1, 25, -4, 10, 36, 88, -99]; let max = find_max(arr); assert_eq!(max, Some(88));}fn find_max(arr: &[i32]) -> Option<i32> { const THRESHOLD: usize =...
2023-04-13
【Rust Cookbook系列】五 密码学
1. 散列(哈希) 1.1 计算文件的 SHA-256 摘要 需要安装ring,data-encoding,error-chain 库,可通过cargo add ring,cargo add data-encoding ,cargo add error-chain 命令安装 [dependencies]data-encoding = "2.3.3"error-chain = "0.12.4"ring = "0.16.20" 以下实例中,先创建文件,写入一些数据。然后使用 digest::Context 计算文件内容的 SHA-256 摘要 digest::Digest。 use data_encoding::HEXUPPER;use error_chain::error_chain;use ring::digest::{Context, Digest, SHA256};use std::fs::File;use std::io::{BufReader, Read,...
2023-04-14
【Rust Cookbook系列】六 数据结构
1. 位域 1.1 定义并操作位域风格的类型 需要安装bitflags库,可通过cargo add bitflags 命令安装 [dependencies]bitflags = "2.1.0" 如下实例在 bitflags! 宏的帮助下创建类型安全的位域类型 MyFlags,并为其实现基本的清理操作(clear 方法)以及 Display trait。随后,展示了基本的按位操作和格式化。 use bitflags::bitflags;use std::fmt;// 定义 MyFlags 枚举类型,表示一个 32 位二进制标志位bitflags! { #[derive(Clone, Copy, PartialEq, Eq, Debug )] struct MyFlags: u32 { const FLAG_A = 0b00000001; // 第一位标志位表示 FLAG_A const FLAG_B = 0b00000010; // 第二位标志位表示 FLAG_B ...
评论
ValineDisqus
公告