Java LinkedTransferQueue take()方法
java.util.concurrent.LinkedTransferQueue.take() 方法是Java中的一个内置函数,它检索并删除队列中的第一个元素。这个方法也会等待(如果需要的话),直到有元素可用。
语法
LinkedTransferQueue.take()
参数: 该函数不接受任何参数。
返回值: 该函数返回队列的第一个元素。
异常: 如果在等待时被打断,该函数会抛出InterruptedException。
下面的程序说明了java.util.concurrent.LinkedTransferQueue.take()的情况。
程序1 :
// Java Program Demonstrate take()
// method of LinkedTransferQueue
import java.util.concurrent.LinkedTransferQueue;
class LinkedTransferQueueTakeExample1 {
public static void main(String[] args) throws Exception
{
// Initializing the queue
LinkedTransferQueue<String> queue =
new LinkedTransferQueue<String>();
// Adding elements to this queue
queue.add("Alex");
queue.add("Bob");
queue.add("Chuck");
queue.add("Drake");
queue.add("Eric");
// Printing the elements
System.out.println("Elements are :");
for (String xyz : queue) {
// will take and remove the head of the queue
System.out.println(queue.take());
}
// Printing the size of the Queue
System.out.println("Queue Size: " + queue.size());
}
}
输出:
Elements are :
Alex
Bob
Chuck
Drake
Eric
Queue Size: 0
示例2
// Java Program Demonstrate take()
// method of LinkedTransferQueue
import java.util.concurrent.LinkedTransferQueue;
class LinkedTransferQueueTakeExample2 {
public static void main(String[] args) throws Exception
{
// Initializing the queue
LinkedTransferQueue<Integer> queue =
new LinkedTransferQueue<Integer>();
// Adding elements to this queue
for (int i = 1; i <= 5; i++)
queue.add(i);
// Printing the elements
System.out.println("Elements are :");
for (Integer xyz : queue) {
// will take and remove the head of the queue
System.out.println(queue.take());
}
// Printing the size of the Queue
System.out.println("Queue Size: " + queue.size());
}
}
输出:
Elements are :
1
2
3
4
5
Queue Size: 0
参考资料 : https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html#take()