好奇心から、すべての無限ループは悪いですか?
- 無限ループを実行すると、どのような悪影響と結果が生じるでしょうか?
- また、それらがすべて悪いわけではない場合、意味のある目的に役立つ場合の例をいくつか挙げていただけますか?
- そして、インスタンスを閉じるために何かが必要ですか? たとえば、Java で StreamReader を使用した後は、常に StreamReader を閉じます (理由は不明です)。
好奇心から、すべての無限ループは悪いですか?
「悪い」の意味がわかりません。
無限ループは多くのシナリオで一般的です。主にイベント ハンドラー ループで、プログラムが無限ループに置かれ、何らかの外部イベントが発生するのを待ちます。これは、GUI と多くのサーバーがプログラムされる方法です。
更新一部の言語 では、無限ループのためだけに構成を正当化するのに十分に役立ちます。
いいえ、悪くはありません。実際に役に立ちます。
無限ループが進行するにつれてメモリを消費するコードの一部を残したかどうかによって異なります。無限ループは、ビデオ ゲーム、ネットワーキング、機械学習など、ほぼすべての分野で使用されます。これは、通常、無限ループが瞬時のユーザー入力/イベントを取得するために使用されるためです。
動作の悪いループ (無限またはその他) を指すために、killer loopというフレーズを聞くことがあります。通常、大量の CPU 時間、メモリ、またはその両方を誤って消費するループ用に予約されています。すべてのキラーループは悪いです。
Froot Loops は、糖尿病の状態によってはキラー ループになることもあります。
メビウスの帯は良い無限ループです。
「無限ループ」という用語は、終了できる外部アクションがなければ終了しないプログラム内のループに対して最もよく使用されます。ほとんどの場合、「割り込みキー」を使用してオペレーティング システムに割り込み信号を送信すると、結局のところ、それが無限ループではないことが証明されます。多くの場合、電力サージや停電でも同じことが起こります。また、一部のオペレーティング システムを備えた一部のプラットフォームでは、他の割り込み信号が発生し、プロセスが停止する場合があります。
したがって、疑似無限ループは、「外部」の影響を除いて終了したくないプロセスに役立ちます。
接続をリッスンする単純なサーバーの例を見てみましょう
この種のシナリオは非常に一般的で、イベント処理で常に見られます。
ネガティブ
インスタンスを閉じるために何かが必要ですか?