这门课解决什么问题

后端开发中,异步操作和并发编程是常见的技术挑战。Kotlin协程作为现代编程语言中的解决方案,能有效简化异步代码的编写,提升应用性能。本课程聚焦于Kotlin协程的核心概念与实践应用,通过系统化的教学,帮助学习者掌握如何用协程处理复杂的异步任务,优化系统资源利用率。课程针对的是希望在项目中实施高效并发逻辑的开发者,尤其适合那些从Java或其他语言转向Kotlin的开发者。

适合什么基础,学完能独立做什么

本课程假设学习者具备一定的编程基础,例如熟悉Java或Kotlin的语法,了解面向对象编程的概念。对于后端开发人员来说,了解基本的多线程和异步编程原理将更有助于学习。完成本课程后,学习者能够独立设计和实现基于协程的后端服务,包括处理网络请求、数据库交互、任务调度等。此外,学习者还可以利用协程来提升应用响应速度,改善用户体验。

资料怎么配合练习

课程资料包含了从基础到高级的练习题,涵盖了协程的创建、取消、异常处理、异步流等多个方面。建议先从课程前几章的实践练习开始,通过编写简单的协程程序来熟悉Kotlin的异步编程模型。随着课程的深入,可以尝试完成更复杂的任务,如开发模拟真实业务场景的后端模块。每一章节都配有总结和案例分析,帮助学习者巩固所学知识。资料中的源码示例是理解如何在实际项目中应用协程的关键,建议反复阅读并实践这些代码。最后,通过课程提供的综合项目案例,将所学知识融会贯通,完成一个完整的协程应用开发。

8ee3b1185603dc0299d0ff5e5a9ee18c_1.png 下载附件 保存到相册 2025-9-4 16:18 上传 扔物线学堂 Kotlin协程完全教程-从基础实践到进阶再到专家 课程目录: ├── 001.0-先导视频_.mp4 ├── 002.1.0-学协程有用吗_.mp4 ├── 003.1.1-切线程:launch().mp4 ├── 004.1.2-自动切回来:挂起函数.mp4 ├── 005.1.3-Android 项目里协程代码的写法_.mp4 ├── 006.1.4-withContext():手动切线程.mp4 ├── 007.1.5-自定义挂起函数.mp4 ├── 008.1.6-挂起函数的性能优势:从 withContext().mp4 ├── 009.1.7-消除魔法:挂起函数为什么不卡线程?.mp4 ├── 010.1.8-「轻量级线程」的本质:从 delay() 说起.mp4 ├── 011.1.9-结构化并发初探.mp4 ├── 012.1.10-并行协程的启动和交互.mp4 ├── 013.1.11-连接线程世界:和回调型 API 协作_.mp4 ├── 014.1.12-回到线程世界:runBlocking().mp4 ├── 015.2.1-概念落地:「一个协程」到底指的是什么.mp4 ├── 016.2.2-父子协程,以及协程间的并行和等待.mp4 ├── 017.2.3-线程的强制结束:stop().mp4 ├── 018.2.4-线程的交互式结束:interrupt().mp4 ├── 019.2.5-协程的交互式取消:cancel().mp4 ├── 020.2.6-协程的结构化取消.mp4 ├── 021.2.7-不配合取消:NonCancellable.mp4 ├── 022.2.8-协程的结构化异常管理.mp4 ├── 023.2.9-Coroutine Exception Handle.mp4 ├── 024.2.10-异常的结构化管理的本质.mp4 ├── 025.2.11-async() 对异常的处理_.mp4 ├── 026.2.12-Supervisor Job.mp4 ├── 027.3.1-Coroutine Scope _ -Context.mp4 ├── 028.3.2-GlobalScope.mp4 ├── 029.3.3-从挂起函数里获取 Coroutine Context.mp4 ├── 030.3.4-coroutine Scope() 和 superv.mp4 ├── 031.3.5-再谈 withContext().mp4 ├── 032.3.6-Coroutine Name.mp4 ├── 033.3.7-Coroutine Context的加减和get().mp4 ├── 034.3.8-自定义 Coroutine Context.mp4 ├── 035.4.1-Channel 和 Flow 简介与对比.mp4 ├── 036.4.2-用 produce() 来提供跨协程的事件流.mp4 ├── 037.4.3-Channel 的工作模式详解.mp4 ├── 038.4.4-Channel API 详解.mp4 ├── 039.4.5-actor():把 SendChannel 暴露出来.mp4 ├── 040.4.6-Flow 的功能定位.mp4 ├── 041.4.7-Flow 的工作原理和应用场景_.mp4 ├── 042.4.8-Flow 的创建.mp4 ├── 043.4.9-Flow 的收集.mp4 ├── 044.4.10-filter() 系列操作符.mp4 ├── 045.4.11-distinct UntilChanged().mp4 ├── 046.4.12-自定义 Flow 操作符.mp4 ├── 047.4.13-timeout、sample、debounce().mp4 ├── 048.4.14-drop()、take() 系列操作符.mp4 ├── 049.4.15-map() 系列操作符.mp4 ├── 050.4.16-transform() 系列操作符.mp4 ├── 051.4.17-withIndex() 操作符.mp4 ├── 052.4.18-reduce()、fold() 系列操作符.mp4 ├── 053.4.19-onEach() 操作符.mp4 ├── 054.4.20-chunked() 操作符.mp4 ├── 055.4.21-try_catch 和 Flow 的异常可见性.mp4 ├── 056.4.22-catch() 操作符.mp4 ├── 057.4.23-retry() 和 retryWhen() 操作符.mp4 ├── 058.4.24-onStart() 等全流程监听系列操作符.mp4 ├── 059.4.25-flowOn() 操作符.mp4 ├── 060.4.26-buffer() 系列操作符.mp4 ├── 061.4.27-多个 Flow 的合并.mp4 ├── 062.4.29-SharedFlow 的效果和适用场景.mp4 ├── 063.4.30-shareIn() 操作符.mp4 ├── 064.4.31-Mutable Shared Flow.mp4 ├── 065.4.32-StateFlow.mp4 ├── 066.5.1-协程间的协作和等待.mp4 ├── 067.5.2-select():先到先得_.mp4 ├── 068.5.3-互斥锁和共享变量_.mp4 ├── 069.5.4-ThreadLocal_.mp4

课程目录

课程目录69 集
  • 1-协程基础与关键知识
  • 001.0-先导视频.mp4
  • 002.1.0-学协程有用吗.mp4
  • 003.1.1-切线程:launch().mp4
  • 004.1.2-自动切回来:挂起函数.mp4
  • 005.1.3-Android 项目里协程代码的写法.mp4
  • 006.1.4-withContext():手动切线程.mp4
  • 007.1.5-自定义挂起函数.mp4
  • 008.1.6-挂起函数的性能优势:从 withContext().mp4
  • 009.1.7-消除魔法:挂起函数为什么不卡线程?.mp4
  • 010.1.8-「轻量级线程」的本质:从 delay() 说起.mp4
  • 011.1.9-结构化并发初探.mp4
  • 012.1.10-并行协程的启动和交互.mp4
  • 013.1.11-连接线程世界:和回调型 API 协作.mp4
  • 014.1.12-回到线程世界:runBlocking().mp4
  • 2-结构化并发
  • 015.2.1-概念落地:「一个协程」到底指的是什么.mp4
  • 016.2.2-父子协程,以及协程间的并行和等待.mp4
  • 017.2.3-线程的强制结束:stop().mp4
  • 018.2.4-线程的交互式结束:interrupt().mp4
  • 019.2.5-协程的交互式取消:cancel().mp4
  • 020.2.6-协程的结构化取消.mp4
  • 021.2.7-不配合取消:NonCancellable.mp4
  • 022.2.8-协程的结构化异常管理.mp4
  • 023.2.9-Coroutine Exception Handle.mp4
  • 024.2.10-异常的结构化管理的本质.mp4
  • 025.2.11-async() 对异常的处理.mp4
  • 026.2.12-Supervisor Job.mp4
  • 3-CoroutineScope-Context
  • 027.3.1-Coroutine Scope _ -Context.mp4
  • 028.3.2-GlobalScope.mp4
  • 029.3.3-从挂起函数里获取 Coroutine Context.mp4
  • 030.3.4-coroutine Scope() 和 superv.mp4
  • 031.3.5-再谈 withContext().mp4
  • 032.3.6-Coroutine Name.mp4
  • 033.3.7-Coroutine Context的加减和get().mp4
  • 034.3.8-自定义 Coroutine Context.mp4
  • 4-Channel和 Flow
  • 035.4.1-Channel 和 Flow 简介与对比.mp4
  • 036.4.2-用 produce() 来提供跨协程的事件流.mp4
  • 037.4.3-Channel 的工作模式详解.mp4
  • 038.4.4-Channel API 详解.mp4
  • 039.4.5-actor():把 SendChannel 暴露出来.mp4
  • 040.4.6-Flow 的功能定位.mp4
  • 041.4.7-Flow 的工作原理和应用场景.mp4
  • 042.4.8-Flow 的创建.mp4
  • 043.4.9-Flow 的收集.mp4
  • 044.4.10-filter() 系列操作符.mp4
  • 045.4.11-distinct UntilChanged().mp4
  • 046.4.12-自定义 Flow 操作符.mp4
  • 047.4.13-timeout、sample、debounce().mp4
  • 048.4.14-drop()、take() 系列操作符.mp4
  • 049.4.15-map() 系列操作符.mp4
  • 050.4.16-transform() 系列操作符.mp4
  • 051.4.17-withIndex() 操作符.mp4
  • 052.4.18-reduce()、fold() 系列操作符.mp4
  • 053.4.19-onEach() 操作符.mp4
  • 054.4.20-chunked() 操作符.mp4
  • 055.4.21-try_catch 和 Flow 的异常可见性.mp4
  • 056.4.22-catch() 操作符.mp4
  • 057.4.23-retry() 和 retryWhen() 操作符.mp4
  • 058.4.24-onStart() 等全流程监听系列操作符.mp4
  • 059.4.25-flowOn() 操作符.mp4
  • 060.4.26-buffer() 系列操作符.mp4
  • 061.4.27-多个 Flow 的合并.mp4
  • 062.4.29-SharedFlow 的效果和适用场景.mp4
  • 063.4.30-shareIn() 操作符.mp4
  • 064.4.31-Mutable Shared Flow.mp4
  • 065.4.32-StateFlow.mp4
  • 5-协作、互斥锁和共享变量
  • 066.5.1-协程间的协作和等待.mp4
  • 067.5.2-select():先到先得.mp4
  • 068.5.3-互斥锁和共享变量.mp4
  • 069.5.4-ThreadLocal.mp4