ArrayBlockingQueue対。 GoogleGuavaノンブロッキングEvictingQueueの例

公開: 2020-12-29
ArrayBlockingQueue対。 GoogleGuavaノンブロッキングEvictingQueueの例

並行性ユーティリティはJavaで非常に素晴らしいです。

java.util.concurrentパッケージには、さまざまな方法で使用できる多くのユーティリティが含まれています。

このチュートリアルでは、java.util.concurrentの違いについて説明します。 ArrayBlockingQueueとcom.google.common.collect。 EvictingQueue

EvictingQueueとは何ですか?

EvictingQueueGoogle's Guava library一部です。 これは、 full queueに要素を追加しようとすると、キューのheadから要素を自動的にremovesnon-blockingbounded (固定サイズ)キューです。

GoogleのGuavaライブラリをeclipse-javaプロジェクトに追加するにはどうすればよいですか?

mavenプロジェクトを使用している場合は、以下のmaven依存関係をpom.xmlファイルに追加できます。 non-mavenプロジェクトの場合は、ここからダウンロードして、プロジェクトのクラスパスにライブラリを含める必要があります。

ArrayBlockingQueueとは何ですか?

これは、要素を配列の内部に格納する、 blockingされたbounded (固定サイズ)キューです。 unlimitedの量の要素を保存することはできCAN'T 。 このキューは要素FIFO (先入れ先出し)を注文します。

Read more :シングルトンキューの例

例を始めましょう

  1. サイズ10のArrayBlockingQueueを作成します
  2. サイズ10のEvictingQueueを作成します
  3. キューに15個の要素を追加してみてください
  4. EvictingQueueの場合–エラーはスローされません
  5. ArrayBlockingQueueの場合– Queue Fullエラーがスローされます

クラスCrunchifyArrayBlockingQueueVsEvictingQueue.javaを作成します

このJavaプログラムをEclipseコンソールまたはIntelliJIDEAでアプリケーションとして実行するだけで、次のような結果が表示されます。

コンソールの結果:

上記のプログラムの実行中に問題が発生した場合はお知らせください。