В настоящее время я работаю над симулятором F1, и мне не удалось реализовать табло.
У меня есть несколько транспортных средств, каждая в одном потоке, которые каждые 5 секунд обновляют расстояние и скорость. Кроме того, у меня есть еще одна ветка для оценки, которая снова обновляется каждые 5 секунд. Моя проблема заключается в обновлении и сортировке счета. Прямо сейчас я использую ConcurrentHashMap, в котором хранятся все автомобили. Каждое транспортное средство обновляется, и я просто составляю его список и сортирую:
public void sortCars() {
Collections.sort(sortedCars, Collections.reverseOrder());
}
Моя основная проблема заключается в следующем: автомобили должны каким-то образом получать обновленный список, я делал список stati c, но Мои специалисты сказали мне, что это плохо, так как список постоянно обновлялся, поэтому я могу дать каждому автомобилю оценку и отсортировать ее на каждой итерации в каждом потоке.
Я пробовал использовать обменник, но это слишком медленно. Мысль об использовании Callable в течение некоторого времени, но не кажется правильным. Есть ли у меня другой вариант аппартамента из перечисленных? Если нет, то какой из них лучший?
Забыл добавить, что автомобили изменяют только себя, а класс оценки только сортирует их