処理待ちのためのループ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/07 10:48 UTC 版)
「ループ (プログラミング)」の記事における「処理待ちのためのループ」の解説
詳細は「ビジーウェイト」を参照 かつてのプログラミング環境では、処理待ちをするためにループを使用する場合があった。例えば、 ユーザーが何かキーを入力するまで待機する: 10 PRINT "Press any key to continue: "20 IF INSTR$ = "" THEN GOTO 2030 PRINT "Thank you!" 一定の時間間隔をおいて処理を行う: 10 PRINT "A"20 FOR I = 0 TO 10000: NEXT30 PRINT "B"40 FOR I = 0 TO 10000: NEXT50 PRINT "C" などである。これらのコーディングテクニックは、スリープ機能やマルチタスク機能、イベント(メッセージ)やスレッド機能などが用意されていなかったために使用せざるを得なかったものであり、現代的なオペレーティングシステムにおけるプログラミング環境ではほとんど使用されることはない。特にスピンループを使用した待機は、実際の待機時間がプロセッサ(CPU)のハードウェア仕様(クロック周波数)に左右され、また負荷に応じてクロックが変動する動的オーバークロック機構(Intel Turbo Boostなど)を備えたプロセッサでは通用しない。さらに、スピンループは1つのプログラムが延々とプロセッサ時間(CPU時間)を使い続けることになり、電力効率が悪くなったり、優先順位の低い別のタスクの実行速度に悪影響を与えたりする。コンパイラの最適化によって、無意味なループは除去されてしまうこともある。
※この「処理待ちのためのループ」の解説は、「ループ (プログラミング)」の解説の一部です。
「処理待ちのためのループ」を含む「ループ (プログラミング)」の記事については、「ループ (プログラミング)」の概要を参照ください。
- 処理待ちのためのループのページへのリンク