/
itokar98
/
HomeWorkMultithreadingTask1
Обзор
Документация
Войти
/
itokar98
/
HomeWorkMultithreadingTask1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/Main.java
64 строки
2 KB
Ilya Tokar
Change task
29 ноя 2025, 12:58
29 ноя 2025, 12:58
a3c1798
Код
Авторство
О чём код?
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or // click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter. import java.util.*; public class Main { public static void main(String[] args) throws InterruptedException { String[] texts = new String[25]; for (int i = 0; i < texts.length; i++) { texts[i] = generateText("aab", 30_000); } long startTs = System.currentTimeMillis(); // start time // Список для хранения потоков List<Thread> threads = new ArrayList<>(); // Создаем и запускаем поток для каждой строки for (String text : texts) { Thread thread = new Thread(() -> { int maxSize = 0; for (int i = 0; i < text.length(); i++) { for (int j = 0; j < text.length(); j++) { if (i >= j) { continue; } boolean bFound = false; for (int k = i; k < j; k++) { if (text.charAt(k) == 'b') { bFound = true; break; } } if (!bFound && maxSize < j - i) { maxSize = j - i; } } } System.out.println(text.substring(0, 100) + " -> " + maxSize); }); threads.add(thread); thread.start(); } // Ожидаем завершения всех потоков for (Thread thread : threads) { thread.join(); } long endTs = System.currentTimeMillis(); // end time System.out.println("Time: " + (endTs - startTs) + "ms"); } public static String generateText(String letters, int length) { Random random = new Random(); StringBuilder text = new StringBuilder(); for (int i = 0; i < length; i++) { text.append(letters.charAt(random.nextInt(letters.length()))); } return text.toString(); } }