首先协程是轻量级的线程
协程创建方式
1.GlobalScope.launch
GlobalScope.launch(Dispatchers.Main) {
println("")
}
这函数创建了一个协程的作用域,Lambda表达式就在协程中运行了,这个函数创建的是一个顶层协程,这种协程当程序运行结束也结束,你会发现执行后日志不会打印,因为还没有来得及执行代码块中的代码执行,程序就结束了。
2.delay
GlobalScope.launch{
println("")
delay(1000)
}
这个时候加一个延时就行了,delay函数是一个非阻塞的挂起函数,delay函数会挂起当前协程,当不会影响其他协程
这里相信大家一定想到了Thread,sleep()函数,但Thread,sleep()函数会阻塞当前线程,这样线程下的所有协程也会被阻塞。
3.runBlocking
runBlocking {
println("")
delay(1000)
}
此函数也创建了一个协程的作用域,但它可以保证协