在我的应用程序中,我有 4 个线程将元素添加到 aPriorityBlockingQueue
和一个线程轮询元素。对于轮询线程,队列似乎不可访问。我认为我必须采取措施使其线程安全。
在我取出第一个元素后,我清除了队列,它应该被其他 4 个填充线程再次填充。
轮询和填充线程在同一个类中,该类包含PriorityBlockingQueue
.
这是投票的代码:
private class UPPainter implements Runnable {
@Override
public void run() {
while(queue.size() > 0) {
ReceivedMsg msg = queue.poll();
queue.clear();
for(final IPacketListener c : listeners) {
new Thread(new ListenerUp(c, msg)).start();
}
}
}
}