Rust Atomics and Locks 阅读笔记 第一章 Rust并发基础

本文介绍了Rust中的并发基础知识,包括线程的创建与管理,通过std::thread::spawn和JoinHandle,以及线程安全的通信工具如Mutex和Atomic类型。文中还讨论了静态生命周期、引用计数(Rc与Arc)、线程同步原语如Condvar,以及parking和unparking线程的概念。
摘要由CSDN通过智能技术生成

Rust Atomic and Locks 原书信息

作者:Mara Bos
出版社: O’REILLY
ISBN:978-1-098-11944-7

第一章 Rust并发基础

  1. 在多核处理器出现之前,操作系统通过在进程间快速切换,每个进程运行一段时间,来实现并发(concurrency);多核处理器出现后,实现了真正的并行(parallel);
  2. 不同的进程之间相互隔离,无法访问对方的内存,除非通过操作系统内核。但是进程可以产生(spawn)线程(threads),线程之间共享内存空间,从而可以简单地实现相互通信;
  3. 在Rust中,通过标准库的std::thread::spawn来产生新的线程,该方法需要一个参数,参数是该线程用于执行的函数(function),可以通过thread::current()::id()来获取当前线程的ID,该ID仅能用于比较和复制,并且无法保证生成的ID是连续的;
  4. main函数退出时会结束整个程序,即使有其他spawned的线程还在运行,如果需要所有线程都结束后再退出main函数,需要将let t = thread::spawn(f)的返回值(是一个JoinHandle类型)通过t.join().unwrap()来回收;
  5. println!宏使用了std::io::Stdout::lock()锁来确保每一次打印不被其他线程的打印干扰;
  6. spawn函数有一个'static静态生命周期限制,要求spawn的函数必须在整个程序(program)运行时存活,正常通过fn function()声明的函数没有问题,但是闭包(closure)通过引用捕获(capturing by reference)局部变量的时候
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值