是否可以创建2个永远相互调用的Ruby光纤? Ruby最终会因堆栈溢出而崩溃,还是Fibers不会占用堆栈空间?
答案 0 :(得分:1)
如果在任何编程语言中编写无限循环,最终会出现问题。我不熟悉Ruby Fibers,但如果他们通过方法相互调用,那么堆栈最终会溢出。
在无限循环场景中可能破坏的其他事情是资源有限,因此磁盘空间和网络带宽通常是接下来的两个(网络因为事情通常会超时)。
答案 1 :(得分:1)
恢复光纤不会增加堆栈大小。如果你在恢复另一个光纤之前每次递归到一个函数,那么堆栈会增加直到溢出 - 正如通常无限递归一样。