Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • tutorial
  • jetpack

  • components

  • androidx

  • 动态化
  • apm

  • module

  • harmony

  • tool

  • other

  • kotlin

    • tutorial
    • 协程
      • 入门
        • 协程 vs 回调
        • CoroutineScope
        • 调度程序
        • WithContext:
        • Continuation
      • 其他
        • suspend
  • 《android》
  • kotlin
Jacky
2023-11-02
目录

协程

# 入门

# 协程 vs 回调

回调是一种很好的模式, 但也存在缺点。过多使用回调的代码可能会变得难以读取和推演。此外, 回调也不允许使用某些语言功能, 例如异常

Kotlin 协程使您能够将基于回调的代码转换为顺序代码。顺序编写的代码通常更易于阅读, 甚至可以使用异常等语言功能

最后, 两者所做的事情完全相同: 等待长时间运行的任务获得结果, 然后继续执行。不过, 两者的代码看起来却截然不同

# CoroutineScope

Kotlin 中, 所有协程都在 CoroutineScope 中运行。作用域在其整个作业期间会控制协程的生命周期。如果取消某个作用域的作业, 则该作用域内启动的所有协程也将取消

# 调度程序

Kotlin 协程提供三个调度程序: Main、IO 和 Default

  • Main 调度程序用于在 Android 主线程上运行协
  • IO 调度程序针对 IO 工作进行了优化, 例如从网络或磁盘读取内容
  • Default 调度程序则针对 CPU 密集型任务进行了优化

# WithContext (opens new window):

在任何调度程序之间切换时, 协程会使用 withContext

# Continuation

# 其他

# suspend

关键字 suspend 是 Kotlin 将函数(即函数类型)标记为可供协程使用的方式。当协程调用标记为 suspend 的函数时, 它不会像常规函数调用一样在函数返回之前进行阻塞, 而是挂起执行, 直到结果就绪为止, 然后从上次停止的位置恢复并使用返回的结果。当它挂起并等待结果时, 它会取消阻塞正在运行它的线程, 以便其他函数或协程可以运行

上次更新: 2025/10/09, 23:53:03
tutorial

← tutorial

最近更新
01
npx 使用指南
10-12
02
cursor
09-28
03
inspect
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式