お互いを永遠に呼び合う 2 つの Ruby のファイバーを作成することは可能ですか? Ruby は最終的にスタック オーバーフローでクラッシュするのでしょうか、それともファイバーはスタック スペースを消費しませんか?
質問する
321 次
2 に答える
1
ファイバを再開しても、スタック サイズは増加しません。他のファイバーを再開する前に毎回関数に再帰すると、通常の無限再帰の場合と同様に、スタックがオーバーフローするまで増加します。
于 2013-05-25T00:16:17.747 に答える
1
プログラミング言語で無限ループを書くと、いずれ何かが壊れます。私は Ruby ファイバーに詳しくありませんが、メソッドを介して相互に呼び出している場合、スタックは最終的にオーバーフローします。
無限ループのシナリオで壊れる可能性があるその他のものは、限られたリソースであるため、通常、ディスク容量とネットワーク帯域幅は次の 2 つです (通常はタイムアウトになるため、ネットワーク)。
于 2011-09-16T18:45:46.103 に答える