首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >android之GlobalScope(协程)使用介绍

android之GlobalScope(协程)使用介绍

作者头像
李小白是一只喵
发布2021-01-21 10:36:01
发布2021-01-21 10:36:01
2.9K0
举报
文章被收录于专栏:算法微时光算法微时光

image.png

什么是协程

协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。

image.png

有一点必须明确的是,一个线程的多个协程的运行是串行的。 如果是多核CPU,多个进程或一个进程内的多个线程是可以并行运行的,但是一个线程内协程却绝对是串行的,无论CPU有多少个核。毕竟协程虽然是一个特殊的函数,但仍然是一个函数。一个线程内可以运行多个函数,但这些函数都是串行运行的。

当一个协程运行时,其它协程必须挂起。

GlobalScope.lunch

GlobalScope.launch用于启动了一个运行在子线程的顶层协程。

GlobalScope继承于CoroutineScope(协程的生命周期),表示此协程的生命周期随应用程序的生命周期。 实例:

代码语言:javascript
复制
fun main() {
    GlobalScope.launch {    
       // 在应用程序的生命周期内启动一个新的协程并继续
        delay(1000L)       
       // 非阻塞的等待1秒钟
        println("【${Thread.currentThread().name}】World!")
    }
    println("【${Thread.currentThread().name}】Hello,")
    Thread.sleep(2000L)    
    // 阻塞的等待2秒钟,因为协程的生命周期受应用程序生命周期限制,所以这里保证协程内部逻辑执行完
}

运行结果:

代码语言:javascript
复制
【main】Hello,
【DefaultDispatcher-worker-1】World!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是协程
  • GlobalScope.lunch
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档