/
fedion
/
hw1
Обзор
Документация
Войти
/
fedion
/
hw1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
answer
src/main/java/org/example/Main.java
57 строк
2 KB
Sharypov Konstantin
Задание 1
08 окт 2025, 22:21
08 окт 2025, 22:21
c30c731
Код
Авторство
О чём код?
package org.example; import lombok.extern.log4j.Log4j2; import java.util.*; import static java.util.Arrays.asList; @Log4j2 public class Main { public static void main(String[] args) { List<Block> initialBlocks = new ArrayList<>(); for (int i = 0; i < 10_000; i++) { initialBlocks.add(new Block()); } Warehouse fabric = new Warehouse("Fabric", initialBlocks); Warehouse retail = new Warehouse("Retail"); List<Warehouse> route = asList(fabric, retail); route.forEach(Thread::start); //запускаем потоки складов List<Truck> trucks = new ArrayList<>(); for (int i = 0; i < 10; i++) { trucks.add(new Truck("Truck " + i, 1000, route)); } trucks.forEach(Thread::start); //запускаем потоки грузовиков trucks.forEach(truck -> { try { truck.join(); //ожидаем завершение работы всех грузовиков } catch (InterruptedException e) { log.error(e.getMessage(), e); } }); route.forEach(Thread::interrupt); //прерываем работу складов Collections.sort(initialBlocks); List<Block> deliveredBlocks = new ArrayList<>(retail.getStorage()); Collections.sort(deliveredBlocks); //Сверяем, что все блоки были доставлены if (initialBlocks.equals(deliveredBlocks)) { log.info("Correct delivery"); } else { log.error("Error in delivery"); } } }