美文网首页
android之GlobalScope(协程)使用介绍

android之GlobalScope(协程)使用介绍

作者: Lee_5566 | 来源:发表于2021-01-14 20:42 被阅读0次
    image.png

    什么是协程

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

    image.png

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

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

    GlobalScope.lunch

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

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

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

    运行结果:

    【main】Hello,
    【DefaultDispatcher-worker-1】World!
    

    相关文章

      网友评论

          本文标题:android之GlobalScope(协程)使用介绍

          本文链接:https://www.haomeiwen.com/subject/cfakaktx.html