1:什么是协程,kotlin协程是什么。
2:kotlin开启协程的方式
launch async+await
两者最主要区别
-
异常处理:
launch
内部可能会抛出异常,因此需用户手动进行处理。而async
默认不会抛出异常,因为它会认为你最终必须调用await
来获取结果,因此,async
内部如果出现异常,用户需要在await
处进行捕获。 -
返回值:一个最重大的区别就是,
launch
函数返回的是一个Job
对象,该对象主要用于取消协程运行,而async
函数返回的是一个Deferred
对象,该对象不仅可以用于取消协程,更重要的是可以获取异步任务返回结果!这是相当有用的一个特性,如下代码所示:
协程作用域的概念
CoroutineScope
GlobalScope
MainScope
创建子协程域
coroutineScope{}
这个api主要用于方便地创建一个子域,并且管理域中的所有子协程。注意这个方法只有在所有 block中创建的子协程全部执行完毕后,才会退出
supervisorScope{}
区别是supervisorScope 在子协程失败时不影响其他子协程,而coroutineScope是将异常抛出。
suspend
这种函数只能在另一个suspend函数或者协程里面被调用。
3:kotlin协程的简单用法
image.png image.pngimage.png
网友评论