Kotlin协程

1.什么是协程

协程就是一套基于线程的上层框架(一个线程框架)

2.优点

方便 ---在同一个代码块进行多次的线程切换(withContext)

3.挂起 suspend

image.png

挂起:稍后会被自动切回来的线程切换

协程的挂起本质是切线程

例子:自定义一个挂起函数 仍在主线程 未切换 因为不知道如何切换


image.png

suspend作用:提醒(函数的创建者对函数的调用者的提醒--我是一个耗时操作),可以让主线程不卡

如何自定义一个suspend函数

什么时候自定义:

原则:耗时(I/O操作,CPU计算工作)

怎么写

给函数加上suspend 然后用withContext
也可以用delay 比如等待类型的挂起函数


image.png

4.非阻塞式

非阻塞式挂起:不卡线程

(看起来阻塞的代码 写出非阻塞的操作)

协程不一定比线程轻量级


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [TOC] 简介 Coroutines are computer program components that ...
    Whyn阅读 6,011评论 5 15
  • 一、Kotlin 协程概念 Kotlin 协程提供了一种全新处理并发的方式,你可以在 Android 平台上使用它...
    4e70992f13e7阅读 1,787评论 0 2
  • 上一篇:Kotlin - Lambda 表达式[https://www.jianshu.com/p/6899025...
    a_simple_coder阅读 2,088评论 0 17
  • 在今年的三月份,我因为需要为项目搭建一个新的网络请求框架开始接触 Kotlin 协程。那时我司项目中同时存在着两种...
    业志陈阅读 1,105评论 0 5
  • 协程是轻量级的线程。 kotlin协程是kotlin的扩展库(kotlinx.coroutines)。 线程在An...
    付小影子阅读 6,459评论 0 4