/
Danchi
/
Java_Cars
Обзор
Документация
Войти
/
Danchi
/
Java_Cars
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/java/com/example/car/service/ThreadTest.java
70 строк
3 KB
artem
4 - 8
18 дек 2024, 11:24
18 дек 2024, 11:24
783cfa1
Код
Авторство
О чём код?
package com.example.car.service; import com.example.car.config.H2DatabaseInitializer; import com.example.car.dto.CarDto; import com.example.car.repository.CarModelRepository; import com.example.car.thread.DealerCenter; import com.example.car.thread.DealerService; import com.example.car.thread.DealerServiceImpl; import com.example.car.utility.CarGenerator; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadTest { DealerService dealerService; @Test public void testMultiThread() throws InterruptedException { dealerService = new DealerServiceImpl(); List<CarDto> cars = CarGenerator.generateCars(6000); DealerCenter dealerCenter = new DealerCenter(); long startTimeSingleThread = System.currentTimeMillis(); dealerService.processDealer(dealerCenter, cars); long endTimeSingleThread = System.currentTimeMillis(); long elapsedTimeSingleThread = endTimeSingleThread - startTimeSingleThread; System.out.println("Количество автомобилей в шоуруме: " + dealerCenter.getCarsInShowRoom().size()); System.out.println("Обработка в одном потоке: " + elapsedTimeSingleThread + " мс"); DealerCenter dealerCenter2 = new DealerCenter(); List<CarDto> carList1 = cars.subList(0, 2000); List<CarDto> carList2 = cars.subList(2000, 4000); List<CarDto> carList3 = cars.subList(4000, 6000); Thread thread1 = new Thread( () -> { dealerService.processDealer(dealerCenter2, carList1); }); Thread thread2 = new Thread( () -> { dealerService.processDealer(dealerCenter2, carList2); }); Thread thread3 = new Thread( () -> { dealerService.processDealer(dealerCenter2, carList3); }); long start = System.currentTimeMillis(); thread1.start(); thread2.start(); thread3.start(); thread1.join(); thread2.join(); thread3.join(); long stop = System.currentTimeMillis(); long duration = stop - start; System.out.println("Количество автомобилей в шоуруме: " + dealerCenter.getCarsInShowRoom().size()); System.out.println("Обработка в 3 потоках: " + duration + " мс"); } }