翻訳と辞書
Words near each other
・ ビジョン・クエスト 青春の賭け
・ ビジョン・クエスト/青春の賭け
・ ビジョン・クエスト青春の賭け
・ ビジョン・フォー・スペース・エクスプロレーション
・ ビジョン航空
・ ビジランテ
・ ビジランティ
・ ビジリア
・ ビジンサマ
・ ビジンマン
ビジーウェイト
・ ビジーストリート
・ ビジーツー
・ ビジービー
・ ビジービーバー
・ ビジービーバー関数
・ ビジーフォー
・ ビジーフォースペシャル
・ ビジーフォー・スペシャル
・ ビジーループ


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

ビジーウェイト : ウィキペディア日本語版
ビジーウェイト

ビジーウェイトBusy Waiting)とは、プロセスが条件が成り立つかどうかを定期的にチェックする手法の一種。例えば、キーボードからの入力を待ったり、ロックが獲得できるのを待ったりするのに使われる。ある時間だけ遅延させて何かを実行するのに使うこともある。
古いコンピュータでは特定の長さの時間だけ待つ方法がなかったため、何もしないループで時間をつぶした。しかし、最近のコンピュータはプロセッサの速度がそれぞれ異なるため、この種の時間遅延は不正確なことが多く、(ビジーウェイトをこの目的で使用しているプログラムは)プログラミングに不慣れなことを示す印でもある。
ビジーウェイトは特定の状況では正当な手法と言える。特にSMPシステム向けのオペレーティングシステム内のスピンロックの実装などがそうである。しかし、一般にはビジーウェイトすべきでない。CPU時間を費やして待つ時間があれば、他のスレッドを動作させるほうが効率的である。
== C言語でのコード例 ==
以下は、C言語コードで2つのスレッドがグローバルな整数 i を共有している。1番目のスレッドはビジーウェイトで i の値の変化を待っている。

#include
#include
#include
volatile int i; /
* i はグローバルであり、全関数から見える。
volatile でもあるので、その値の変化はコンパイラからは
予測できない(他のスレッドが変更するため)
*/
/
* t1 は i が 0 以外になることをスピンして待つ
*/
static void
*f1()
static void
*f2()
int main()

UNIX系システムでは、次のように上記コードをコンパイルすることができる:
$ cc spinlock.c -lpthread

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「ビジーウェイト」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.