当前位置: 首页 > news >正文

205-协程与 Flow 入门

05 协程与 Flow 入门

这一章解决“理解协程到底是什么、和线程什么关系,能写出基本的后台加载 + 切主线程,并理解 Flow 冷流”。这里只做入门,深挖(调度细节、异常传播、背压、测试)放在第 08 模块threading-and-coroutines

1. 协程和线程的关系

先建立最重要的直觉:协程不是线程,是运行在线程之上的、可挂起的任务

维度线程(Thread)协程(Coroutine)
由谁调度操作系统Kotlin 运行时 + 协程库
成本重(MB 级栈、内核切换)轻(对象级别,可同时几万个)
阻塞代价占住一个线程挂起时释放线程去干别的
关系协程在线程上执行一个线程可轮流跑很多协程

关键点:当协程遇到suspend挂起(如等网络返回)时,它会让出当前线程,线程去执行别的协程;等结果就绪后,协程再被恢复到某个线程上继续。这就是协程“用少量线程支撑大量并发”的原理,也是它比“一个任务一个线程”高效的原因。

suspend挂起的是协程,不是线程。这是初学最容易搞混的点。

2. suspend 函数

suspend标记“这个函数可能会挂起,必须在协程或另一个 suspend 函数里调用”。

suspendfunloadUser(id:Long):User{returnapi.fetchUser(id)// 网络请求,挂起等待,不阻塞线程}
  • 普通函数不能直接调suspend函数。
  • suspend函数写起来像同步代码(顺序、无回调),但执行是非阻塞的。
suspendfunloadProfile(id:Long):Profile{valuser=loadUser(id)// 顺序写,但每步可挂起valorders=loadOrders(id)returnProfile(user,orders)}

这就是协程最大的卖点:用同步的写法表达异步逻辑,消灭回调地狱。

3. CoroutineScope 与启动

协程必须在一个CoroutineScope里启动。scope 管理协程的生命周期——scope 取消时,里面所有协程一起取消。

scope.launch{valuser=loadUser(1)updateUi
http://www.gsyq.cn/news/1596182.html

相关文章:

  • Windows Btrfs完全指南:如何在Windows上使用下一代Linux文件系统
  • ARM Cortex‑M7 处理器架构技术详解
  • 极化码SO-FSCL解码:原理、硬件实现与性能优化
  • Apple Container 快速入门
  • 445. Java 正则表达式 - 边界匹配器
  • Nub:快速一体化 Node.js 工具包,多方面性能远超传统工具!
  • Web应用白屏问题全链路排查:从诊断到预防的实战指南
  • Beyond Compare 5 密钥生成工具完整指南:5步快速获取专业版授权
  • 海盐勾兑和天然海水差在哪?械字号鼻腔喷雾的硬核品质分界线
  • Easysearch 布尔查询优化(上)|写法不影响顺序,结构才影响性能
  • 2026最新各类命理软件观察:命理排盘软件怎么判断是否适合新手?
  • 本地模型也能懂逻辑,Ryzen AI 数学推理能力测试
  • Flutter:一款免费开源的 SDK,助力开发者打造多平台高效应用!
  • 谷歌调整开发者计费方式:30%统一费率变“更低、解耦费率”,多举措降低分成比例
  • 鸿蒙窗口管理在 Flutter 项目里的落地:沉浸式、系统栏、返回键拦截的协同
  • HTML 的 <blockquote> 元素
  • IMX6ULL Qt 项目(控制led灯和蜂鸣器)全流程
  • Intel平台主板怎么选:Z890新平台与B760升级路线参考
  • 科技局如何精准识别辖区企业的真实创新需求?
  • 040、CCA 上下文坐标注意力的 YOLOv11 实现:扩大坐标信息感受野的改进
  • 8大网盘下载限速终结者:本地化直链获取工具深度解析
  • 如何校准LED显示屏色彩均匀性以消除视觉马赛克
  • 3分钟轻松搞定!为Royal TSX添加完美中文汉化包,告别英文界面困扰
  • 高通近 40 亿美元收购 Modular,拓展业务进军 AI 与数据中心市场
  • AWVS实战:构建自动化扫描与手动验证的Web漏洞评估闭环
  • Kill-Doc:浏览器脚本实现一站式文档下载解决方案
  • +1毛也是首选!申通这家五星网点的底气
  • 工信局如何利用数智工具判断技术改造项目的可行性?
  • StarRailAssistant:解放双手的崩坏星穹铁道智能助手完全指南
  • SSL证书验证失败全解析:从诊断到修复的实战指南