This example demonstrate how to use the PriorityBlockingQueue
class. The PriorityBlockingQueue
is one implementation of the BlockingQueue
interface. It is an unbounded concurrent queue. The object place in this type of queue must implement the java.lang.Comparable
interface. The Comparable
interface defines how the order priority of the elements inside this queue.
For simplicity, in this example we use strings object as the elements to be placed in the queue. The String
class implements the comparable interface. Running this example will print out the names in the string array in alphabetical orders.
package org.kodejava.util.concurrent;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.PriorityBlockingQueue;
public class PriorityBlockingQueueExample {
public static void main(String[] args) {
final String[] names =
{"carol", "alice", "malory", "bob", "alex", "jacobs"};
final BlockingQueue<String> queue = new PriorityBlockingQueue<>();
new Thread(() -> {
for (String name : names) {
try {
queue.put(name);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}, "Producer").start();
new Thread(() -> {
try {
for (int i = 0; i < names.length; i++) {
System.out.println(queue.take());
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}, "Consumer").start();
}
}
This code print out:
alex
alice
bob
carol
jacobs
malory
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024