首先,我们需要定义一个带优先级的Runnable:
/**
* to use PriorityBlockingQueue, we need PriorityRunnable threads
*/
public abstract class PriorityRunnable implements Runnable, Comparable<PriorityRunnable> {
private int priority;
private PriorityRunnable(int priority) {
if (priority < 0) {
throw new IllegalArgumentException();
}
this.priority = priority;
}
@Override
public int compareTo(PriorityRunnable another)