这门课解决什么问题

很多Android开发者知道协程比线程轻量,但项目里线程切换时机不对、withContext调用位置错了、协程和回调型API混着用出问题、甚至线程被强制结束导致崩溃。这门课从协程基础用法讲起,沿着结构化并发模型一层层剥开,让你理解协程为什么不卡线程、为什么延迟这么轻,最终能在Android项目中写出干净、正确、不踩坑的协程代码。

适合什么基础

需要熟悉Kotlin基础语法,最好有Android开发经验,正在做或准备做Android项目。如果你正在从Java转Kotlin,或者需要转岗到后端开发需要理解协程,这门课也能帮你补上这块缺口。不适合零基础小白——先确保你能看懂Kotlin基本语法和Java的线程模型。

建议先看哪几块

建议从"协程基础"整块看完,重点看线程切换(launch与挂起函数的区别、withContext手动切线程、Android项目中的协程写法)和"结构化并发"整块。先导视频和"学协程有什么用"这两块是入门必看的,帮你建立整体认知。结构化并发部分相对抽象,但理解后协程的所有用法都会变简单。

学完能独立做什么

学完能独立在Android项目中正确使用协程:用launch或挂起函数替代回调、用withContext切换线程、用延迟做等待而非sleep、理解父子协程的并行与等待关系、能与回调型API正确协作、理解协程的性能优势。如果你正在写一个复杂的多线程Android项目,这门课帮你把协程这块从"能用"提升到"用好"。

资料怎么配合练习

资料包以视频为主,建议看完一块视频后做对应练习:先导视频后跟着做简单场景,线程切换部分重点练习launch和withContext的用法,结构化并发部分练习父子协程的启动与等待。视频里提到的代码示例多看几遍,动手跟着写一遍,比只看不动手效果好得多。

课程目录

1-协程基础与关键知识
|   ├──001.0-先导视频.mp4  22.31M
|   ├──002.1.0-学协程有用吗.mp4  38.20M
|   ├──003.1.1-切线程:launch().mp4  125.88M
|   ├──004.1.2-自动切回来:挂起函数.mp4  80.71M
|   ├──005.1.3-Android 项目里协程代码的写法.mp4  48.79M
|   ├──006.1.4-withContext():手动切线程.mp4  38.78M
|   ├──007.1.5-自定义挂起函数.mp4  16.75M
|   ├──008.1.6-挂起函数的性能优势:从 withContext().mp4  62.64M
|   ├──009.1.7-消除魔法:挂起函数为什么不卡线程?.mp4  106.22M
|   ├──010.1.8-「轻量级线程」的本质:从 delay() 说起.mp4  49.17M
|   ├──011.1.9-结构化并发初探.mp4  99.01M
|   ├──012.1.10-并行协程的启动和交互.mp4  78.77M
|   ├──013.1.11-连接线程世界:和回调型 API 协作.mp4  74.37M
|   └──014.1.12-回到线程世界:runBlocking().mp4  46.67M
2-结构化并发
|   ├──015.2.1-概念落地:「一个协程」到底指的是什么.mp4  129.59M
|   ├──016.2.2-父子协程,以及协程间的并行和等待.mp4  88.41M
|   ├──017.2.3-线程的强制结束:stop().mp4  17.22M
|   ├──018.2.4-线程的交互式结束:interrupt().mp4  124.49M
|   ├──019.2.5-协程的交互式取消:cancel().mp4  112.18M
|   ├──020.2.6-协程的结构化取消.mp4  87.92M
|   ├──021.2.7-不配合取消:NonCancellable.mp4  104.36M
|   ├──022.2.8-协程的结构化异常管理.mp4  168.29M
|   ├──023.2.9-Coroutine Exception Handle.mp4  44.29M
|   ├──024.2.10-异常的结构化管理的本质.mp4  124.40M
|   ├──025.2.11-async() 对异常的处理.mp4  68.55M
|   └──026.2.12-Supervisor Job.mp4  40.08M
3-CoroutineScope-Context
|   ├──027.3.1-Coroutine Scope _ -Context.mp4  45.53M
|   ├──028.3.2-GlobalScope.mp4  38.66M
|   ├──029.3.3-从挂起函数里获取 Coroutine Context.mp4  31.78M
|   ├──030.3.4-coroutine Scope() 和 superv.mp4  116.66M
|   ├──031.3.5-再谈 withContext().mp4  44.16M
|   ├──032.3.6-Coroutine Name.mp4  12.65M
|   ├──033.3.7-Coroutine Context的加减和get().mp4  90.20M
|   └──034.3.8-自定义 Coroutine Context.mp4  17.91M
4-Channel和 Flow
|   ├──035.4.1-Channel 和 Flow 简介与对比.mp4  23.18M
|   ├──036.4.2-用 produce() 来提供跨协程的事件流.mp4  68.66M
|   ├──037.4.3-Channel 的工作模式详解.mp4  77.59M
|   ├──038.4.4-Channel API 详解.mp4  181.89M
|   ├──039.4.5-actor():把 SendChannel 暴露出来.mp4  26.78M
|   ├──040.4.6-Flow 的功能定位.mp4  133.36M
|   ├──041.4.7-Flow 的工作原理和应用场景.mp4  83.71M
|   ├──042.4.8-Flow 的创建.mp4  93.41M
|   ├──043.4.9-Flow 的收集.mp4  47.92M
|   ├──044.4.10-filter() 系列操作符.mp4  53.07M
|   ├──045.4.11-distinct UntilChanged().mp4  16.08M
|   ├──046.4.12-自定义 Flow 操作符.mp4  30.98M
|   ├──047.4.13-timeout、sample、debounce().mp4  71.52M
|   ├──048.4.14-drop()、take() 系列操作符.mp4  16.03M
|   ├──049.4.15-map() 系列操作符.mp4  38.67M
|   ├──050.4.16-transform() 系列操作符.mp4  37.62M
|   ├──051.4.17-withIndex() 操作符.mp4  9.31M
|   ├──052.4.18-reduce()、fold() 系列操作符.mp4  82.36M
|   ├──053.4.19-onEach() 操作符.mp4  15.31M
|   ├──054.4.20-chunked() 操作符.mp4  6.72M
|   ├──055.4.21-try_catch 和 Flow 的异常可见性.mp4  138.97M
|   ├──056.4.22-catch() 操作符.mp4  79.60M
|   ├──057.4.23-retry() 和 retryWhen() 操作符.mp4  35.36M
|   ├──058.4.24-onStart() 等全流程监听系列操作符.mp4  25.32M
|   ├──059.4.25-flowOn() 操作符.mp4  99.52M
|   ├──060.4.26-buffer() 系列操作符.mp4  76.37M
|   ├──061.4.27-多个 Flow 的合并.mp4  80.33M
|   ├──062.4.29-SharedFlow 的效果和适用场景.mp4  120.42M
|   ├──063.4.30-shareIn() 操作符.mp4  91.88M
|   ├──064.4.31-Mutable Shared Flow.mp4  74.55M
|   └──065.4.32-StateFlow.mp4  38.52M
5-协作、互斥锁和共享变量
|   ├──066.5.1-协程间的协作和等待.mp4  32.99M
|   ├──067.5.2-select():先到先得.mp4  28.23M
|   ├──068.5.3-互斥锁和共享变量.mp4  154.95M
|   └──069.5.4-ThreadLocal.mp4  54.37M
——/【扔物线】Kotlin 协程完全教程 - 从基础实践到进阶再到专家/├──1-协程基础与关键知识  |   ├──001.0-先导视频.mp4  22.31M|   ├──002.1.0-学协程有 rk0867-【扔物线】Kotlin 协程完全教程 - 从基础实践到进阶再到专家【VIP】 ,瑞客论坛