web-dev-qa-db-ja.com

キューの実用的なアプリケーションは何ですか?

コンピュータサイエンスにおけるキューの実用的なアプリケーションは何ですか。それらをどこで使用し、その理由は何ですか?ビデオゲームやコンピューターシミュレーションプログラムで使用しているそうですが、本当ですか?どうして?これら2つの領域とは別に、データ構造としてのキューの他の実用的なアプリケーションは何ですか?

キューは、一部のエンティティで先入れ先出しの順序を効率的に維持したい場合に使用されます。これらの状況は、文字通りあらゆるタイプのソフトウェア開発で発生します。

何千人ものユーザーにファイルを提供するWebサイトがあるとします。すべてのリクエストを処理することはできません。一度に処理できるのは、たとえば100だけです。公平な方針は、先着順です。到着順に一度に100件ずつ配信します。キューは間違いなく最も適切なデータ構造です。

同様に、マルチタスクオペレーティングシステムでは、CPUはすべてのジョブを一度に実行できないため、ジョブをバッチ処理してから、いくつかのポリシーに従ってスケジュールする必要があります。この場合も、キューは適切なオプションです。

15
Il-Bhima

スタックは、さまざまなソフトウェアの[元に戻す]ボタンに使用されます。最近のほとんどの変更がスタックにプッシュされます。ブラウザーの戻るボタンでさえ、最近アクセスしたすべてのWebページがスタックにプッシュされるスタックの助けを借りて機能します。

キューは、プリンターまたは画像のアップロードの場合に使用されます。最初に入力されるのは、最初に処理される場所です。

24
Bhavya

キューを使用して、SO=の質問への返信に優先順位を付けます。複数の処理を試みましたが、完全なハッシュを作成しました。

リクエスト/ジョブ/クライアントが1つ以上のハンドラーによって処理されるすべての種類のシステム:着信アイテムはキューに格納され、ハンドラーが解放されると、キューから新しいアイテムをポップして処理を開始します。このパターンは、特にすべてのWebサーバーで使用されます。 生産者と消費者の問題 を参照してください。

4
Péter Török

一度に印刷するドキュメントがたくさんあるとします。 OSはこれらすべてのドキュメントをキューに入れ、プリンターに送信します。プリンタは、ドキュメントがキューに入れられた順序、つまり先入れ先出しで各ドキュメントを受け取り、印刷します。

複数のユーザーまたはネットワーク化されたコンピューターシステムが存在する状況では、おそらく他のユーザーとプリンターを共有します。ファイルの印刷を要求すると、その要求が印刷キューに追加されます。リクエストが印刷キューの先頭に到達すると、ファイルが印刷されます。これにより、一度に1人だけがプリンタにアクセスでき、このアクセスは先着順で行われます。

3
Zaki

グラフの幅優先(「浅い」優先)検索では、キューを使用して、ノードを発見したときにノードを格納します。

3
James M.

キューの一般的な用途は、シミュレーションとオペレーティングシステムです。

Operating systems often maintain a queue of processes that are ready to execute or that are waiting for a particular event to occur.
Computer systems must often provide a “holding area” for messages between two processes, two programs, or even two systems. This holding area is usually called a “buffer” and is often implemented as a queue.

当社のソフトウェアキューには、実際のキューに対応するものがあります。ピザを買ったり、映画館に入ったり、ターンパイクを走ったり、ジェットコースターに乗ったりするために、私たちは列を作って待っています。キューデータ構造のもう1つの重要なアプリケーションは、このような実際のキューをシミュレートおよび分析するのに役立ちます。

3
mahboob khan

アルゴリズムとデータ構造は強く結びついている
したがって、通常、キューの使用は、スタックのエンキューとデキューを操作するアルゴリズムに依存します
順番に。用途による

たとえば、複数のユーザーからの入力を受け入れるアプリケーションを作成していて、それらを「先着順サービス」ベースでサーバー化する必要がある場合、つまり、アプリが最初のリクエストを最初に処理することを意味します。
各リクエストのタイムスタンプをチェックするたびにではなく、誰が最も古いかを確認する
各着信リクエストをスタックにエンキューする必要があります
次のリクエストを確認するには、毎回スタックをデキューするだけです

2
Radian

キューは、幅優先検索-開始頂点から到達できるグラフ内のすべての頂点を走査するアルゴリズムを実装するためにも使用できます。

1
chrisA
  1. プリンターのような単一の共有リソースでリクエストを処理します。
  2. CPUタスクのスケジューリング。
  3. 実際のシナリオでは、コールセンターの電話システムは、キューを使用して、サービス担当者が空くまで、順番に電話をかける人を保留します。

詳細については https://coderworld109.blogspot.in/2017/12/applications-of-queue-data-structure.html

1
Mohit Singh

ゲームアプリケーション:相互接続された部屋の迷路を探索するアルゴリズムは、キューを使用して、まだ探索されていないオプションを追跡します

1
chrisA

コンピューターでのコンパイルは、FIRST IN FIRST OUT [FIFO]によって行われます。最初の行は、最初にn個の結果を最初にコンパイルして、QUEUEにします。

1
aish

キューは先入れ先出し方式(FIFO)を使用しています。到着する最初のジョブが最初に処理されます。例えばOSは、印刷用のドキュメントをキューに入れ、プリンターは到着する最初のドキュメントのみを印刷して出力する

プロセスを保持するプリンター。 CPUスケジューリング。ページ置換ポリシー(FIFO)として。

キューの理解を深めるのに役立つ多くの実例があります。たとえば、キュ​​ーを使用して何かを取得または提供する場合はどこでも。

0
Saquib Hasan