/
Nicholas
/
java_basics
Обзор
Документация
Войти
/
Nicholas
/
java_basics
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Performance/CarNumberGenerator/src/Loader.java
52 строки
2 KB
Nicholay Sokolovsky
20.1 Performance
11 дек 2023, 20:19
11 дек 2023, 20:19
d0ab8e2
Код
Авторство
О чём код?
import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; public class Loader { public static void main(String[] args) { long start = System.currentTimeMillis(); char letters[] = {'У', 'К', 'Е', 'Н', 'Х', 'В', 'А', 'Р', 'О', 'С', 'М', 'Т'}; ThreadPoolExecutor pool = (ThreadPoolExecutor) Executors.newFixedThreadPool(12); for (int regionCode = 1; regionCode < 100; regionCode++) { int finalRegionCode = regionCode; pool.execute(() -> { try { PrintWriter writer = new PrintWriter("res/numbers".concat(Integer.toString(finalRegionCode)).concat(".txt")); StringBuilder builder = new StringBuilder(); for (int number = 1; number < 1000; number++) { for (char firstLetter : letters) { for (char secondLetter : letters) { for (char thirdLetter : letters) { builder.append(firstLetter).append(padNumber(number, 3)).append(secondLetter) .append(thirdLetter).append(padNumber(finalRegionCode, 2)).append('\n'); } } } } writer.write(builder.toString()); writer.flush(); writer.close(); if (pool.getActiveCount() == 1) { System.out.println((System.currentTimeMillis() - start) + " ms"); } } catch (FileNotFoundException e) { throw new RuntimeException(e); } }); } pool.shutdown(); } private static String padNumber(int number, int numberLength) { String numberStr = Integer.toString(number); int padSize = numberLength - numberStr.length(); if (padSize > 0) { for (int i = 0; i < padSize; i++) { numberStr = "0".concat(numberStr); } } return numberStr; } }