Сборка многопоточной программы Я столкнулся с проблемой: метод удаления ConcurrentLinkedDeque был вызван двумя потоками и вызвал исключение.Я могу решить проблему, синхронизировав этот метод, как я делал в этом коде, но я ищу решение без синхронизации.Я искал другие подходящие структуры, но не нашел ни одной, которая не выдает исключение или не ждет повторного заполнения очереди.
public void releaseVehicle(DeliveryVehicle vehicle) {
acquireTable.put(vehicle.getLicense(), true);
synchronized (futureQueue) {
if (!futureQueue.isEmpty())
futureQueue.remove().resolve(vehicle);
}
}
Мне любопытно, есть ли другой способ?