Ich arbeite an thread pool executor
, obeserverd ich, wenn ich PriorityBlockingQueue
es im Code führt unter ClassCastException
verwenden und alle Dinge funktionieren gut, wenn ich LinkedBlockingQueue
statt PriorityBlockingQueue
im Code unten wählen.LinkedBlockingQueue und PriorityBlockingQueue in ThreadPoolExecutor
Bitte helfen Sie mir, dies zu verstehen.
public class Test1 {
public static void main(String[] args) {
ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 10, TimeUnit.MINUTES, new PriorityBlockingQueue());
executor.submit(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
executor.submit(new Runnable() {
@Override
public void run() {
}
});
executor.submit(new Runnable() {
@Override
public void run() {
}
});
}
}
Warum machst du mehrere submit(), wenn die Ausnahme bei der ersten Iteration selbst ausgelöst wird. – GaurZilla