Rust 并发编程实战课
晁岳攀(鸟窝)
前微博技术专家,知名微服务框架 rpcx 作者
582 人已学习
新⼈⾸单¥98
登录后,你可以任选4讲全文学习
课程目录
已更新 22 讲/共 38 讲
第四章:同步原语 (1讲)
Rust 并发编程实战课
15
15
1.0x
00:00/00:00
登录|注册

直播专场(二)|异步编程示例:演示Rust并发编程的能力

直播内容预览

Part 1:异步编程的起因
Part 2:异步编程的场景
Part 3:异步进行时
Part 4:答疑环节

Part 1 异步编程的起因

00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00
    这一部分主要讲解并发单元的比较、Rust 异步编程和 Go Goroutine 的区别。

    1. 并发单元(进程、线程和纤程)的对比

    2. 几种并发方式的对比

    3. 优劣势(了解即可)

    Rust 中实现协程的主要机制是 async/await 语法,这实现了无栈协程。async 关键字将代码块转换为一个实现了 Future trait 的状态机。.await 关键字用于挂起当前线程的执行而不阻塞,从而允许其他异步任务运行。这符合其零成本抽象的原则,避免了为每个协程管理独立堆栈的开销。这种设计选择优先考虑了效率和性能,尤其是在 I/O 密集型操作方面。
    优势
    更低的内存开销:与线程相比,尤其是在大量并发任务的情况下,协程通常具有更低的内存开销。
    更快的上下文切换:由于协程的上下文切换发生在应用程序级别,不涉及操作系统内核,因此通常比操作系统线程的上下文切换更快。
    更易于编写异步代码:async/.await 语法使得编写异步操作的代码更简洁易懂,类似于同步代码的风格。
    高效处理大量并发 I/O 密集型任务:协程非常适合处理大量并发、需要等待 I/O 操作的任务。
    确认放弃笔记?
    放弃后所记笔记将不保留。
    新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
    批量公开的笔记不会为你同步至部落
    公开
    同步至部落
    取消
    完成
    0/2000
    荧光笔
    直线
    曲线
    笔记
    复制
    AI
    • 深入了解
    • 翻译
      • 英语
      • 中文简体
      • 法语
      • 德语
      • 日语
      • 韩语
      • 俄语
      • 西班牙语
    • 解释
    • 总结

    1. Rust中实现协程的主要机制是async/await语法,实现了无栈协程,具有更低的内存开销和更快的上下文切换。 2. 异步编程适合处理大量并发I/O密集型任务,但需要异步运行时来管理和调度任务。 3. 在不同场景下,选择合适的并发单元是关键,如协程适合I/O密集型任务,线程适合CPU密集型任务。 4. Tokio是一个功能齐全的异步运行时,提供了丰富的工具和库,被广泛用于构建高性能的网络应用。 5. Tokio的任务是一种轻量级、非阻塞的执行单元,类似于操作系统线程,但由Tokio运行时管理。 6. 最近建议使用smol代替async-std,但也可以考虑Tokio作为替代方案。 7. Rust的接入大模型的开发和MCP方面的看法可能是本次直播的答疑问题之一。

    仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
    《Rust 并发编程实战课》
    新⼈⾸单¥98
    立即购买
    登录 后留言

    精选留言

    由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
    收起评论
    大纲
    固定大纲
    直播内容预览
    Part 1 异步编程的起因
    1. 并发单元(进程、线程和纤程)的对比
    2. 几种并发方式的对比
    3. 优劣势(了解即可)
    显示
    设置
    留言
    收藏
    沉浸
    阅读
    分享
    手机端
    快捷键
    回顶部
    文章页面操作
    MAC
    windows
    作用
    esc
    esc
    退出沉浸式阅读
    shift + f
    f11
    进入/退出沉浸式
    command + ⬆️
    home
    滚动到页面顶部
    command + ⬇️
    end
    滚动到页面底部
    ⬅️ (仅针对订阅)
    ⬅️ (仅针对订阅)
    上一篇
    ➡️ (仅针对订阅)
    ➡️ (仅针对订阅)
    下一篇
    command + j
    page up
    向下滚动一屏
    command + k
    page down
    向上滚动一屏
    p
    p
    音频播放/暂停
    j
    j
    向下滚动一点
    k
    k
    向上滚动一点
    空格
    空格
    向下滚动一屏
    播放器操作
    MAC
    windows
    作用
    esc
    esc
    退出全屏
    ⬅️
    ⬅️
    快退
    ➡️
    ➡️
    快进
    空格
    空格
    视频播放/暂停(视频全屏时生效)