5

好奇心から、すべての無限ループは悪いですか?

  • 無限ループを実行すると、どのような悪影響と結果が生じるでしょうか?
  • また、それらがすべて悪いわけではない場合、意味のある目的に役立つ場合の例をいくつか挙げていただけますか?
  • そして、インスタンスを閉じるために何かが必要ですか? たとえば、Java で StreamReader を使用した後は、常に StreamReader を閉じます (理由は不明です)。
4

7 に答える 7

6

「悪い」の意味がわかりません。

無限ループは多くのシナリオで一般的です。主にイベント ハンドラー ループで、プログラムが無限ループに置かれ、何らかの外部イベントが発生するのを待ちます。これは、GUI と多くのサーバーがプログラムされる方法です。

更新一部の言語 では、無限ループのためだけに構成を正当化するのに十分に役立ちます。

于 2012-06-29T06:25:01.503 に答える
1

いいえ、悪くはありません。実際に役に立ちます。

無限ループが進行するにつれてメモリを消費するコードの一部を残したかどうかによって異なります。無限ループは、ビデオ ゲーム、ネットワーキング、機械学習など、ほぼすべての分野で使用されます。これは、通常、無限ループが瞬時のユーザー入力/イベントを取得するために使用されるためです。

于 2014-07-29T07:54:11.287 に答える
1
  • プログラムを正しく作成すれば、ループが原因で発生する副作用はありません。
  • マイクロコントローラでは、無限ループを使用して、プログラムの最後に到達しないようにしています。マイクロコントローラ プログラムの最後には、ほとんどの場合、引き継ぐことができる OS などはありません。次に、定義された動作が存在せず、プログラムが何でもできる状態に到達します。
于 2012-06-29T06:34:14.837 に答える
0

動作の悪いループ (無限またはその他) を指すために、killer loopというフレーズを聞くことがあります。通常、大量の CPU 時間、メモリ、またはその両方を誤って消費するループ用に予約されています。すべてのキラーループは悪いです。

Froot Loops は、糖尿病の状態によってはキラー ループになることもあります。

メビウスの帯は良い無限ループです。

于 2012-06-29T06:47:32.527 に答える
0

「無限ループ」という用語は、終了できる外部アクションがなければ終了しないプログラム内のループに対して最もよく使用されます。ほとんどの場合、「割り込みキー」を使用してオペレーティング システムに割り込み信号を送信すると、結局のところ、それが無限ループではないことが証明されます。多くの場合、電力サージや停電でも同じことが起こります。また、一部のオペレーティング システムを備えた一部のプラットフォームでは、他の割り込み信号が発生し、プロセスが停止する場合があります。

したがって、疑似無限ループは、「外部」の影響を除いて終了したくないプロセスに役立ちます。

于 2013-01-14T00:39:45.220 に答える
0

接続をリッスンする単純なサーバーの例を見てみましょう

  • リクエストを聞く
  • リクエストを取得し、そのリクエストのスレッドを生成します
  • すすぎと繰り返し

この種のシナリオは非常に一般的で、イベント処理で常に見られます。

ネガティブ

  • 手動で強制終了しない限り、プログラムは決して終了しません (状況によっては、これもポジティブです)。

インスタンスを閉じるために何かが必要ですか?

  • 前に述べたように、手動で強制終了できますが、強制終了コマンドを受け入れる入力コマンドラインを実装して、正常に終了することはできません。
于 2012-06-29T06:35:37.650 に答える