kotlin 协程基础

//1.开启一个协程
private fun GlobalScopes() {
    GlobalScope.launch {//在后台启动一个新协程
        delay(3000)//非阻塞延迟3秒
        println("你好!")
    }
    println("嗨,")
    Thread.sleep(3000)//主线程阻塞3秒
}
//2.主线程阻塞
private fun RunBlocking() {
    GlobalScope.launch {//在后台启动一个新协程
        delay(3000)//非阻塞延迟3秒
        println("你好!")
    }
    println("嗨,")
    runBlocking {//阻塞主线程
        println("runBlocking.....")
        delay(1000)//非阻塞延迟3秒
        println("runBlocking...end")
    }
    println("运行结束")
}
//3.主线程阻塞 job.join
fun mainJoin()= runBlocking {
   var job=launch {
        delay(3000)
        println("nihao")
    }
    println("start")
    job.join()//等待协程先完成 再执行后面的
    println("end")
}
//4.coroutineScope
fun mainCoroutineScope()= runBlocking {
    launch {
        println("launch ...")
        delay(2000)
        println("launch ... end")
    }
    coroutineScope {//挂起函数 子协程结束后,才会结束自己
        launch {
            delay(500L)
            println("coroutineScope ...launch")
        }
        println("coroutineScope ...")
        delay(2000)
        println("coroutineScope ... end")
    }
}
//5.重构
fun mainSuspend()= runBlocking {
    launch {
        doThing()//提取函数重构
    }
    println("end")
}
suspend fun doThing() {//suspend修饰符
    delay(1000)
    println("doThing")
}
//6.守护线程
fun mainRepeat()= runBlocking {
    GlobalScope.launch {//全局协程类似于守护线程 当主线程消亡时,守护线程也将消亡
        repeat(10){
            i-> println("第$i")
            delay(1000)
            println("repeat....$i")
        }
    }
    delay(1300L)// just quit after delay
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值