ScopeGuard
确保在作用域结束时执行清理操作,无论正常退出还是发生异常。
let _guard = scopeguard::guard(resource, |r| {
// 清理资源
cleanup(r);
});
中级
资源管理
FSLock
基于文件系统的进程间锁,用于协调多个进程的资源访问。
let lock = FSLock::new("app.lock")?;
let _guard = lock.lock()?;
中级
资源管理
Thread Scope
作用域线程管理,确保线程在作用域结束前完成,安全地使用栈上数据。
thread::scope(|s| {
let data = vec![1, 2, 3];
s.spawn(|| {
println!("{:?}", data);
});
});
中级
资源管理
Crossbeam Scope
Crossbeam库提供的作用域线程管理,支持更丰富的线程生命周期控制。
crossbeam::scope(|s| {
let data = vec![1, 2, 3];
s.spawn(|_| {
println!("{:?}", data);
});
}).unwrap();
中级
资源管理
Rayon Scope
Rayon库提供的并行作用域,用于高效地管理并行任务的生命周期。
rayon::scope(|s| {
let data = vec![1, 2, 3];
s.spawn(|_| {
println!("{:?}", data);
});
});
中级
并行计算
Lockfree Object Pool
无锁对象池,用于高效地重用对象,减少内存分配和回收开销。
let pool = ObjectPool::new(10, || MyObject::default());
let obj = pool.try_pull().expect("Pool is empty");
// 使用对象
pool.push(obj);
高级
资源管理
Process Control
管理子进程的创建、监控和资源回收。
let mut child = Command::new("program")
.spawn()
.expect("Failed to start");
let status = child.wait().expect("Failed to wait");
中级
资源管理
Process Command
构建和执行外部命令,管理输入输出和进程状态。
let output = Command::new("ls")
.arg("-l")
.output()
.expect("Failed to execute command");
基础
资源管理