首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reactivex,kotlin-coroutines,akka-actors等框架编程的权衡?

reactivex,kotlin-coroutines,akka-actors等框架编程的权衡?
EN

Stack Overflow用户
提问于 2020-10-29 01:00:14
回答 1查看 99关注 0票数 0

所有这些框架都在线程之上创建了另一层抽象。例如,由于调度的原因,使用kotlin-coroutines似乎比使用纯线程需要更多的CPU周期。对于反应式,我们有相同的情况,额外的级别-更多的CPU周期。不过,我对阿卡演员不太了解。

而且,即使有更多的CPU周期用于调度协程,我们仍然可以因为非阻塞方法而获得性能提升。

有人能解释一下这些收益(或者这是一种权衡吗?)以硬件和操作系统级别为重点的详细信息?也许在什么情况下,我们想使用协程或reactivex,而当我们因为某些原因而不想使用它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-29 19:52:22

线程、协程、角色等都是围绕并发操作的抽象。这里的主要权衡是这些并发操作的数量和它们处于活动状态的持续时间。

当你有几个并发操作(因为每个线程都很昂贵),并且当所有的操作都要做大量的CPU相关工作时(因为在线程之间切换是非常昂贵的),操作系统级的线程就能很好地工作。

当你有大量的并发操作和/或它们从开始到结束或者从一个恢复点到下一个挂起消耗很少的CPU时,在操作系统级线程之上创建的所有类型的用户级抽象都能很好地工作,因为这些抽象是轻量级的,它们的启动、停止和在它们之间切换也非常便宜。

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

https://stackoverflow.com/questions/64577768

复制
相关文章

相似问题

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