首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >暂停功能是否暂停协同工作?

暂停功能是否暂停协同工作?
EN

Stack Overflow用户
提问于 2022-08-05 11:04:50
回答 1查看 227关注 0票数 1

其实我很困惑。例如,我知道suspendCoroutine函数,它是挂起协同线的挂起函数。但是,是否所有的暂停功能都暂停协同呢?此外,我知道当一个协同线被挂起时,它会从对应的线程中移除一段时间,其他协同或任务可以在这个线程上恢复并运行。

我想得出这样的结论:如果所有的挂起功能都不挂起协同线,那么在coroutine中放置挂起函数和在coroutine中不挂起函数有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-05 17:44:40

标记函数suspend使它能够挂起协同线,但只有在内部调用另一个挂起协同线的挂起函数时,它才会实际挂起协同线。直接挂起协同线的挂起函数在标准库中。其中包括suspendCoroutine()suspendCancellableCoroutine()。你不会经常使用这些。它们最常用于将非协同性API转换为挂起函数。

间接挂起协同线的一些常用函数是withContext()delay()Job.join()Deferred.await()

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73248751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档