/
itokar98
/
HomeWorkSynchronizationTask1
Обзор
Документация
Войти
/
itokar98
/
HomeWorkSynchronizationTask1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/RouteAnalyzer.java
43 строки
1 KB
Ilya Tokar
first_commit
29 ноя 2025, 13:48
29 ноя 2025, 13:48
0207c1e
Код
Авторство
О чём код?
import java.util.concurrent.Callable; public class RouteAnalyzer implements Callable<Integer> { private final String letters; private final int routeLength; public RouteAnalyzer(String letters, int routeLength) { this.letters = letters; this.routeLength = routeLength; } @Override public Integer call() { // Генерируем маршрут String route = Main.generateRoute(letters, routeLength); // Считаем количество команд 'R' int rCount = countR(route); // Обновляем мапу в синхронизированном блоке synchronized (Main.sizeToFreq) { Main.sizeToFreq.merge(rCount, 1, Integer::sum); } // Выводим результат для этого потока System.out.println(Thread.currentThread().getName() + ": маршрут содержит " + rCount + " команд 'R'"); return rCount; } // Метод для подсчета букв 'R' в маршруте private int countR(String route) { int count = 0; for (int i = 0; i < route.length(); i++) { if (route.charAt(i) == 'R') { count++; } } return count; } }