Параллельный упорядоченный список в java - PullRequest
0 голосов
/ 08 мая 2020

В настоящее время я работаю над симулятором F1, и мне не удалось реализовать табло.

У меня есть несколько транспортных средств, каждая в одном потоке, которые каждые 5 секунд обновляют расстояние и скорость. Кроме того, у меня есть еще одна ветка для оценки, которая снова обновляется каждые 5 секунд. Моя проблема заключается в обновлении и сортировке счета. Прямо сейчас я использую ConcurrentHashMap, в котором хранятся все автомобили. Каждое транспортное средство обновляется, и я просто составляю его список и сортирую:

public void sortCars() {
    Collections.sort(sortedCars, Collections.reverseOrder());   
}

Моя основная проблема заключается в следующем: автомобили должны каким-то образом получать обновленный список, я делал список stati c, но Мои специалисты сказали мне, что это плохо, так как список постоянно обновлялся, поэтому я могу дать каждому автомобилю оценку и отсортировать ее на каждой итерации в каждом потоке.

Я пробовал использовать обменник, но это слишком медленно. Мысль об использовании Callable в течение некоторого времени, но не кажется правильным. Есть ли у меня другой вариант аппартамента из перечисленных? Если нет, то какой из них лучший?

Забыл добавить, что автомобили изменяют только себя, а класс оценки только сортирует их

1 Ответ

0 голосов
/ 09 мая 2020

Оказывается, лучшее решение - добавить переменную в Vehicle со списком, и каждый раз, когда я сортирую ее в Score user, установщик. Не совсем то, что я хотел, но работает, я просто не хотел никакой переменной, но думаю, что это невозможно.

Если подумать, я просто был тупым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...