一个小故事讲明白进程、线程、Kotlin 协程到底啥关系? - 掘金
用同步的写法,表达异步的调用
runBlocking/launch/async开启协程
1、suspend 关键字背后的原理
2、如何开启一个原始的协程?
3、协程调用以及整体流程
4、协程代码我为啥看不懂?
suspend 意为挂起、阻塞的意思,与协程相关。
当suspend 修饰函数时,表明这个函数可能会被挂起,至于是否被挂起取决于该函数里是否有挂起动作。
GlobalScope.launch(Dispatchers.Main)
withContext(Dispatchers.IO)
launch/asyc/runBlocking/delay
withContext
如何指定协程运行的线程?
平常大家用的切换到主线程的手段:Activity.runOnUiThread(xx),View.post(xx),Handler.sendMessage(xx) 等简单方式。另外还有一些框架,如AsyncTask、RxJava、线程池等。 它们本质上是借助了Looper+Handler功能。