首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并发性能提高性能吗?

并发性能提高性能吗?
EN

Stack Overflow用户
提问于 2012-02-14 03:49:26
回答 2查看 732关注 0票数 3

我知道在YARV上运行的Ruby中,线程意味着并发而不是并行。我的问题是:在什么情况下,并发本身可以提高性能?例如,我可以想象当同时处理多个IO流时,并发将提高性能-如果一个任务很慢,这并不意味着堆栈中的所有后续任务都必须等待该任务完成。我说的对吗?还有没有其他类似的案例?[hopes that YARV will ever remove the GIL]/[overhead of creating threads with the GIL]的比率是否值得现在就开始在Ruby线程中使用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 03:53:22

在有多个任务都需要等待一些不经常发生的外部刺激(例如,网络数据变得可用、磁盘读取完成等)的情况下,并发性可能非常有用。如果您只是坐在一个循环中等待这些操作之一发生,您可能会选择

  1. 长时间等待某个单一事件完成,而其他事件已经完成并等待您查看它们,或者
  2. 浪费CPU电量循环数百个尚未触发的不同事件,以查找实际已触发的事件。

在设计本质上由事件驱动的程序时,并发性也很有用,例如等待不同的UI事件发生。在这种情况下,您可以指定应该触发的任务以响应不同的UI事件,并且处理器可以处于休眠状态或处理其他任务,而无需显式等待未触发的任务运行。一旦事件发生,这些线程就可以唤醒并共享CPU处理时间。

希望这能有所帮助!

票数 7
EN

Stack Overflow用户

发布于 2012-02-14 04:02:14

Ruby模型工作良好的一种情况是当您使用Ruby驱动其他应用程序时。例如,如果你产生编译,你可以让一个Ruby线程处理一个外部进程。

另一个好处是,它允许您将应用程序划分为逻辑部分,并让一个线程处理每个部分。只使用一个线程就可以做到这一点,这可能需要您编写一个复杂得多的应用程序。

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

https://stackoverflow.com/questions/9267025

复制
相关文章

相似问题

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