PriorityBlockingQueue的“优先级“
优先级 阻塞队列是如何优先的呢?
优先级主要是实现
阻塞队列中的存储的对象必须实现 Comparable接口,然后PriorityBlockingQueue 队列就通过排序取出相应的元素。
和其他的队列的区别,主要是优先级的区别。
和传统的队列先进先出,后进先出 不一样。
public class PriorityBlockingQueueTest {
public static void main(String[] args) throws InterruptedException {
PriorityBlockingQueue<User> pbq=new PriorityBlockingQueue<User>();
pbq.put(new User("liukia",29));
pbq.put(new User("liukia",39));
pbq.put(new User("liukia",49));
pbq.put(new User("liukia",59));
pbq.put(new User("liukia",99));
pbq.put(new User("liukia",19));
System.out.println(pbq.take().toString());
}
}
public class User implements Comparable<User> {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public int compareTo(User o) {
return this.age>o.age?-1:1;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}