ArrayBlockingQueue vs. Przykład kolejki eksmisji Google Guava bez blokowania

Opublikowany: 2020-12-29
ArrayBlockingQueue vs. Przykład kolejki eksmisji Google Guava bez blokowania

Narzędzia współbieżności są bardzo niesamowite w Javie.

Pakiet java.util.concurrent zawiera wiele narzędzi, z których możemy korzystać na wiele różnych sposobów.

W tym samouczku omówimy różnicę między java.util.concurrent. ArrayBlockingQueue i com.google.common.collect. EvictingQueue .

Co to jest kolejka eksmisji?

EvictingQueue jest częścią Google's Guava library . Jest to non-blocking , bounded kolejka (o ustalonym rozmiarze), która automatycznie removes elementy z head kolejki podczas próby dodania elementów do full queue .

Jak dodać bibliotekę Google Guava do swojego projektu eclipse-java?

Możesz dodać poniższą zależność maven do pliku pom.xml, jeśli używasz projektu maven. W przypadku projektu non-maven – musisz go pobrać stąd i dołączyć bibliotekę do ścieżki klas swojego projektu.

Co to jest kolejka blokowania tablic?

Jest to kolejka blocking , bounded (o ustalonym rozmiarze), która przechowuje elementy wewnętrznie w tablicy. CAN'T przechowywać unlimited ilości elementów. Ta kolejka porządkuje elementy FIFO (pierwsze weszło-pierwsze wyszło).

Read more : Przykład kolejki Singleton

Zacznijmy na przykładzie

  1. Utwórz ArrayBlockingQueue o rozmiarze 10
  2. Utwórz kolejkę eksmisji o rozmiarze 10
  3. Spróbuj dodać 15 elementów do kolejki
  4. Dla EvictingQueue – nie wyrzuci żadnego błędu
  5. Dla ArrayBlockingQueue – wyrzuci błąd Queue Full

Utwórz klasę CrunchifyArrayBlockingQueueVsEvictingQueue.java

Po prostu uruchom ten program Java jako aplikację w Eclipse Console lub IntelliJ IDEA, a zobaczysz taki wynik.

Wynik konsoli:

Daj mi znać, jeśli napotkasz jakikolwiek problem z działaniem powyższego programu.