Thursday, June 11, 2026
HomeLanguagesJavaLinkedBlockingDeque takeFirst() method in Java

LinkedBlockingDeque takeFirst() method in Java

The takeFirst() method of LinkedBlockingDeque returns and removes the first element of the Deque container from it, waiting if necessary until an element becomes available.. The method throws an InterruptedException if it is interrupted while waiting.

Syntax:

public E takeFirst()

Returns: This method returns the first element of the Deque container, waiting if necessary until an element becomes available.

Exception: The function throws an InterruptedException if it is interrupted while waiting.

Below programs illustrate takeFirst() method of LinkedBlockingDeque:

Program 1:




// Java Program to demonstrate takeFirst()
// method of LinkedBlockingDeque
  
import java.util.concurrent.LinkedBlockingDeque;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {
  
        // create object of LinkedBlockingDeque
        LinkedBlockingDeque<Integer> LBD
            = new LinkedBlockingDeque<Integer>();
  
        // Add numbers to end of LinkedBlockingDeque
        LBD.add(7855642);
        LBD.add(35658786);
        LBD.add(5278367);
        LBD.add(74381793);
  
        // print Dequeue
        System.out.println("Linked Blocking Deque: " + LBD);
  
        // removes the front element and prints it
        System.out.println("Head of Linked Blocking Deque: "
                           + LBD.takeFirst());
  
        // prints the Deque
        System.out.println("Linked Blocking Deque: " + LBD);
    }
}


Output:

Linked Blocking Deque: [7855642, 35658786, 5278367, 74381793]
Head of Linked Blocking Deque: 7855642
Linked Blocking Deque: [35658786, 5278367, 74381793]

Program 2: To demonstrate InterruptedException




// Java Program to demonstrate takeFirst()
// method of LinkedBlockingDeque
  
import java.util.concurrent.LinkedBlockingDeque;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {
  
        // create object of LinkedBlockingDeque
        LinkedBlockingDeque<Integer> LBD
            = new LinkedBlockingDeque<Integer>();
  
        // Add numbers to end of LinkedBlockingDeque
        LBD.add(7855642);
        LBD.add(35658786);
        LBD.add(5278367);
        LBD.add(74381793);
  
        // print Dequeue
        System.out.println("Linked Blocking Deque: " + LBD);
  
        LBD.clear();
  
        // throws error as the list is empty and it
        // is interrupted while waiting
        System.out.println("Head of Linked Blocking Deque: "
                           + LBD.takeFirst());
    }
}


Runtime Errors:

Max real time limit exceeded due to either by heavy load on server or by using sleep function

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingDeque.html#takeFirst–

RELATED ARTICLES

2 COMMENTS

Most Popular

Dominic
32515 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6896 POSTS0 COMMENTS
Nicole Veronica
12012 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12109 POSTS0 COMMENTS
Shaida Kate Naidoo
7019 POSTS0 COMMENTS
Ted Musemwa
7262 POSTS0 COMMENTS
Thapelo Manthata
6976 POSTS0 COMMENTS
Umr Jansen
6963 POSTS0 COMMENTS