So verwenden Sie Basic Java BlockingQueue

A Warteschlange ist eine Datenstruktur, die dem First-In-First-Out-Prinzip (FIFO) folgt. A Blockierungswarteschlange ist eine Warteschlange, die blockiert, wenn ein Vorgang für eine volle oder leere Warteschlange versucht wird. Die Operationen an einer Warteschlange und einer blockierenden Warteschlange sind ähnlich und werden entsprechend angewendet.

In diesem Artikel wird die grundlegende Funktionsweise von demonstriert Blockierende Warteschlangen in Java.

Grundlegende Operationen in der Blockierungswarteschlange in Java

Um größere Operationen an einer Blockierungswarteschlange durchzuführen, ist es notwendig, die grundlegenden Operationen einer Blockierungswarteschlange zu verstehen. Zu den Grundoperationen gehören:

  • Elemente hinzufügen: mit der hinzufügen() Und setzen() Methode.
  • Elemente löschen: mit der take(), remove(), Und Umfrage() Methoden.
  • Auf Elemente zugreifen: Verwenden enthält() Und Elemente() Methoden.
  • Elemente abrufen: mit der nächste() Methode.

Operation 1: Hinzufügen von Elementen in BlockingQueue

Der hinzufügen() Methode einer blockierenden Warteschlange fügt ein Element am Ende der Warteschlange hinzu; Wenn die Warteschlange voll ist, wird die hinzufügen() Die Methode blockiert, bis in der Warteschlange Platz verfügbar ist.

//Import the Java package for blocking the queue
import java.util.concurrent.*;

class blocking{

    public static void main(String[] args)
throws IllegalStateException{
    //Create a String declared in the linked Blocking queue
BlockingQueue<String> str
= new LinkedBlockingQueue<String>();
//Enter Strings
str.add("Hello");
str.add("to");
str.add("Programming");
// Print queue that has added the elements
System.out.println("The elements in the BlockingQueue are : \n" + str);
}
}

Im obigen Code haben wir das einfach implementiert hinzufügen() Methode unter Verwendung der LinkedBlockingQueue in Java.

Ausgabe

In der obigen Ausgabe wurde die Ausgabe mit der add()-Methode von BlockingQueue in Java gedruckt.

Vorgang 2: Elemente in BlockingQueue löschen

Um die Elemente in der Blockierungswarteschlange zu entfernen, wird die Methode „remove()“ verwendet. Die Zeichenfolge oder Ganzzahl kann einfach entfernt werden, indem die zu entfernenden Elemente deklariert werden. Zusammen mit der Methode „remove()“ sind die beiden Methoden unten aufgeführt:

poll() Methode: Die Methode poll() ruft das erste Element aus der Warteschlange ab und entfernt es.

take() Methode: Die Methode take() entfernt das Anfangselement aus der Warteschlange.

//Import the Java package for blockingqueue
import java.util.concurrent.*;

class blocking{
public static void main(String[] args) {
    //Create a String declared in the linked Blocking queue
BlockingQueue<Integer> addint
= new LinkedBlockingQueue<Integer>();
//Enter Strings
addint.add(89);
addint.add(99);
addint.add(150);
addint.add(100);
// Print queue of elements before removing elements
System.out.println("The elements in the BlockingQueue before  are : \n" + addint);
addint.remove(99);
addint.remove(100);
//Print queue after deleting
System.out.println("The elements in the BlockingQueue after removing are : \n" + addint);
}
}

Im obigen Code wurden zwei Ganzzahlwerte durch die Implementierung der Methode „remove()“ von Java gelöscht.

Ausgabe

Vorgang 3: Zugriff auf Elemente in BlockingQueue

Diese Methode ist für den Zugriff auf ein bestimmtes Element aus der Warteschlange verantwortlich. Auf drei verschiedene Arten kann auf die Elemente aus der Warteschlange zugegriffen werden enthalten (), element(), Und spähen().

import java.util.concurrent.* ; 
//Declare Class to access the present elements
class Accesingelements { 
    public static void main( String[ ] args ) 
    { 
    //Declare the Strings and add using the add() method.
        BlockingQueue<String> newstr = new LinkedBlockingQueue<String>( ); 
        newstr.add("This"); 
        newstr.add("Is"); 
        newstr.add("programming"); 
        newstr.add("!"); 
        //Print the elements present in the blocking queue
        System.out.println("The elements in the Blocking queue are:"+newstr);  
//Check if the entered element is present in the Blocking Queue.
        if (newstr.contains("programming")) 
            System.out.println("The string Programming is present in the queue."); 
        else 
            System.out.println("The entered string is not in the queue"); 
 
    } 
}

Im obigen Code hilft die Methode „.conatins()“ beim Zugriff auf den Wert und bei der Information, ob das Element in der Warteschlange vorhanden ist oder nicht.

Ausgabe

Operation 4: Elemente in BlockingQueue iterieren

Um die Warteschlange zu durchlaufen, wurde der Iterator verwendet und der nächste() Die Methode hilft beim Durchlaufen der Elemente in der Warteschlange.

import java.util.Iterator;
import java.util.concurrent.*;

class IteratingThroughElements {

public static void main(String[] args) {
    //Add the values
BlockingQueue<Integer> addvalue = new LinkedBlockingQueue<Integer>();
addvalue.add(32);
        addvalue.add(45);
        addvalue.add(56);
        addvalue.add(99);
        //Use the iterator to iterate over the elements
Iterator<Integer>addvalueiter = addvalue.iterator();
        //Print the elements that are present in the Queue.
System.out.println("The elements are:");
       
for(int j = 0; j<addvalue.size(); j++)
{
System.out.print(addvalueiter.next()+ " ");
}
}

}

Im obigen Code wurden die Werte mit der Methode add() hinzugefügt, und der Iterator läuft/iteriert über die Warteschlange. Mit der Methode next() werden die Queue-Elemente zurückgegeben.

Ausgabe

In der obigen Ausgabe wurden die Elemente im Array iteriert und zurückgegeben.

Abschluss

Um den Mechanismus zum Blockieren von Warteschlangen zu verstehen, müssen Sie die grundlegende Funktionsweise von BlockingQueue verstehen. Die Grundoperationen sind das Hinzufügen, Löschen, Zugreifen und Abrufen der Elemente in der Warteschlange. In diesem Artikel haben wir ausführlich die Implementierung grundlegender Operationen auf Blockingqueue in Java demonstriert, die bei der Durchführung größerer Operationen helfen werden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen