BlockingQueue put() method in Java with examples

13 Sep, 2021
The put(E e) method of BlockingQueue interface inserts element passed as parameter to method at the tail of this BlockingQueue, if queue is not full. If the queue is full, then this method will wait for space to become available and after space is available, it inserts the element to BlockingQueue. 
Syntax:  
public void put(E e) throws InterruptedException
Parameter: This method takes a mandatory parameter e which is the element to be inserted in LinkedBlockingQueue.Return Value: The method does not return anything.Exception: This method throws following exceptions:  
InterruptedException– when interruption occurred at time of waiting for queue to become available
NullPointerException– if the element passed to method is null
Note: The put() method of BlockingQueue has been inherited from the Queue class in Java.Below programs illustrates put(E e) method of BlockingQueue class:Program 1:  
Java
// Java Program Demonstrate put(E e)// method of BlockingQueue import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.BlockingQueue;public class GFG {     public static void main(String[] args)        throws InterruptedException    {        // define capacity of BlockingQueue        int capacityOfQueue = 4;         // create object of BlockingQueue        BlockingQueue<String> BQ            = new LinkedBlockingQueue<String>(capacityOfQueue);         // Add element using put() method        BQ.put("Karan");        BQ.put("Suraj");        BQ.put("Harsh");        BQ.put("Rahul");         // print elements of queue        System.out.println("Items in Queue are " + BQ);    }}
Items in Queue are [Karan, Suraj, Harsh, Rahul]
 
Program 2: 
Java
// Java Program Demonstrate put()// method of BlockingQueue import java.util.Iterator;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.BlockingQueue;public class GFG {     public void PutDemo() throws InterruptedException    {        // define capacity of BlockingQueue        int capacityOfQueue = 5;         // create object of BlockingQueue        BlockingQueue<Employee> BQ            = new LinkedBlockingQueue<Employee>(capacityOfQueue);         // Add element to BlockingQueue        Employee emp1 = new Employee("Ranjeet", "Tester", "29000", 27);        Employee emp2 = new Employee("Sanjeet", "Manager", "98000", 34);        Employee emp3 = new Employee("Karan", "Analyst", "44000", 30);         // Add Employee Objects to BQ        // Using put(E e)        BQ.put(emp1);        BQ.put(emp2);        BQ.put(emp3);         System.out.println("Details of Employees:");        // print details of BQ        Iterator itr = BQ.iterator();        while (itr.hasNext())            System.out.println(itr.next());    }     // create an Employee Object with name,    // position, salary and age as attributes    public class Employee {         public String name;        public String position;        public String salary;        public int Age;        Employee(String name, String position,                 String salary, int age)        {            this.name = name;            this.position = position;            this.salary = salary;            this.Age = age;        }        @Override        public String toString()        {            return "Employee [name=" + name + ", position="                + position + ", salary=" + salary                + ", Age=" + Age + "]";        }    }     // Main Method    public static void main(String[] args)    {        GFG gfg = new GFG();        try {            gfg.PutDemo();        }        catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
Details of Employees:
Employee [name=Ranjeet, position=Tester, salary=29000, Age=27]
Employee [name=Sanjeet, position=Manager, salary=98000, Age=34]
Employee [name=Karan, position=Analyst, salary=44000, Age=30]
 
Program 3: 
Java
// Java Program Demonstrate put(E e)// method of BlockingQueue import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.BlockingQueue; public class GFG {     public static void main(String[] args)        throws InterruptedException    {        // define capacity of BlockingQueue        int capacityOfQueue = 4;         // create object of BlockingQueue        BlockingQueue<String> BQ            = new LinkedBlockingQueue<String>(capacityOfQueue);         // try to put null value in put method        try {            BQ.put(null);        }        catch (Exception e) {            // print error details            System.out.println("Exception: " + e);        }    }}
Exception: java.lang.NullPointerException
 
Reference: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html#put(E)
anikakapoor
Java-BlockingQueue
Java-Collections
Java-Functions
Java
Java
Java-Collections
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.