Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以创建 2 个永远相互调用的 Ruby 纤维?Ruby 最终会因堆栈溢出而崩溃,还是 Fiber 不会占用堆栈空间?
恢复光纤不会增加堆栈大小。如果您每次在恢复另一根光纤之前递归到一个函数,那么堆栈将增加直到溢出 - 就像它通常使用无限递归一样。
如果你用任何编程语言编写一个无限循环,最终都会出现问题。我不熟悉 Ruby Fibers,但是如果它们通过方法相互调用,那么堆栈最终会溢出。
其他可能在无限循环场景中中断的事情是任何资源有限的事情,因此磁盘空间和网络带宽通常是接下来的两个(网络,因为事情通常会超时)。