无限红宝石纤维?

发布于 2024-12-05 04:09:02 字数 72 浏览 1 评论 0原文

是否有可能创建 2 个永远互相调用的 Ruby 纤维? Ruby 最终会因堆栈溢出而崩溃吗?或者 Fiber 不会消耗堆栈空间吗?

Is it possible to create 2 Ruby's Fibers that call each other forever? Would Ruby eventually crash with the stack overflow or do the Fibers not consume stack space?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愛上了 2024-12-12 04:09:02

如果您使用任何编程语言编写无限循环,最终都会出现问题。我对 Ruby Fibers 不熟悉,但如果它们通过方法相互调用,那么堆栈最终会溢出。

在无限循环场景中可能中断的其他因素是任何有限资源,因此磁盘空间和网络带宽通常是接下来的两个(网络,因为事情通常会超时)。

If you write an infinite loop in any programming language, something will eventually break. I'm not familiar with Ruby Fibers, but if they are calling each other via methods, then the stack will overflow eventually.

Other things that can break in an infinite loop scenario are anything that is a limited resource, so disk space and network bandwidth are usually the next two (the network because things usually time out).

我一直都在从未离去 2024-12-12 04:09:02

恢复光纤不会增加堆栈大小。如果每次在恢复另一个纤程之前都递归到一个函数中,那么堆栈将增加直到溢出 - 就像通常的无限递归一样。

Resuming a fiber doesn't increase the stack size. If you recursed into a function each time before your resumed the other fiber, then the stack would increase until overflow - just as it does with infinite recursion normally.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文