Class UnboundedQueue<E>


  • public final class UnboundedQueue<E>
    extends java.lang.Object
    Queue zum Austausch von Nachrichten zwischen Threads. Mit der Methode put(E) können beliebige Objekte (Nachrichten) in die Queue eingetragen (gesendet) werden und i.a. von einem anderen Thread mit den Methoden take() oder poll(long) aus der Queue entnommen (empfangen) werden. Die generische Queue kann durch Angabe eines Typs auf diesen bestimmten Objekttypen arbeiten. Die Anzahl der Nachrichten in der Queue ist nicht beschränkt. Die Nachrichten werden in der Reihenfolge empfangen in der sie versendet wurden (first in first out, FIFO).
    • Constructor Summary

      Constructors 
      Constructor Description
      UnboundedQueue()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      E poll​(long timeout)
      Empfängt und entfernt eine Nachricht aus der Queue.
      void put​(E message)
      Sendet eine Nachricht an die Queue.
      int size()
      Bestimmt die Größe dieser Queue.
      E take()
      Empfängt und entfernt eine Nachricht aus der Queue.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • UnboundedQueue

        public UnboundedQueue()
    • Method Detail

      • put

        public void put​(E message)
        Sendet eine Nachricht an die Queue.
        Parameters:
        message - Zu versendende Nachricht.
      • take

        public E take()
               throws java.lang.InterruptedException
        Empfängt und entfernt eine Nachricht aus der Queue. Wenn die Queue leer ist, dann wartet die Methode, bis eine Nachricht in die Queue gesendet wurde. Wenn mehrere Nachrichten in der Queue vorhanden sind, wird die Nachricht empfangen und entfernt, die als erstes in die Queue gesendet wurde.
        Returns:
        Empfangene Nachricht.
        Throws:
        java.lang.InterruptedException - Wenn der Thread unterbrochen wurde während auf Nachrichten gewartet wurde.
      • poll

        public E poll​(long timeout)
               throws java.lang.InterruptedException
        Empfängt und entfernt eine Nachricht aus der Queue. Wenn die Queue leer ist, dann wartet die Methode, bis eine Nachricht in die Queue gesendet wurde oder bis die angegebene Zeit verstrichen ist. Wenn mehrere Nachrichten in der Queue vorhanden sind, wird diejenige Nachricht empfangen und entfernt, die als erstes in die Queue gesendet wurde.
        Parameters:
        timeout - Zeit in Millisekunden, für die bei leerer Queue auf neue Nachrichten gewartet wird.
        Returns:
        Empfangene Nachricht oder null, wenn nach Ablauf des Timeouts immer noch keine Nachricht in der Queue vorhanden ist.
        Throws:
        java.lang.InterruptedException - Wenn der Thread unterbrochen wurde während auf Nachrichten gewartet wurde.
      • size

        public int size()
        Bestimmt die Größe dieser Queue.
        Returns:
        Anzahl verbleibender Elemente in dieser Queue.