Added output in README.md

This commit is contained in:
zum
2025-02-25 08:24:55 +04:00
parent a51fca61d9
commit 58a0c4a883
2 changed files with 24 additions and 2 deletions

View File

@@ -62,5 +62,27 @@ ThreadPoolExecutor и замерить время его работы
{ 89, 67, 45, 8, 3, 4, 1 },
{ 25,150, 200, 5, 50, 75, 175 }
```
## Результаты работы на матрице 5000 на 5000
```
Время выполнения без потоков: 3728.2977 мс
Время выполнения с потоками ThreadExecutor: 1541.1539 мс
Время выполнения с потоками ForkJoinPool: 1412.6938 мс
```
```
Время выполнения без потоков: 4043.893 мс
Время выполнения с потоками ThreadExecutor: 1624.9124 мс
Время выполнения с потоками ForkJoinPool: 1474.203 мс
```
```
Время выполнения без потоков: 3876.2693 мс
Время выполнения с потоками ThreadExecutor: 1354.9933 мс
Время выполнения с потоками ForkJoinPool: 1433.2023 мс
```
## Вывод
Оба варианта работа с потоками работают в более чем два раза быстрее чем без потоков.
Между собой 3 запуска программы показало, что в большинстве случаев ForkJoinPool справляется быстрее, чем
ThreadExecutor.
Скорее всего это связано с тем, что ForkJoinPool использует тот же принцип "Разделяй и влавствуй",
что и сортировка слиянием.

View File

@@ -104,14 +104,14 @@ public class Main {
ArrayController.parallelSortedTwoDimArr(secondArray);
long endTime1 = System.nanoTime();
System.out.println("Время выполнения с потоками: " + (endTime1 - startTime1) / 1_000_000.0 + " мс");
System.out.println("Время выполнения с потоками ThreadExecutor: " + (endTime1 - startTime1) / 1_000_000.0 + " мс");
secondArray = null;
copyTo(originalArray, thirdArray);
originalArray= null;
long startTime2 = System.nanoTime();
ArrayController.secondParallelSortedTwoDimArr(thirdArray);
long endTime2 = System.nanoTime();
System.out.println("Время выполнения с ещё потоками: " + (endTime2 - startTime2) / 1_000_000.0 + " мс");
System.out.println("Время выполнения с потоками ForkJoinPool: " + (endTime2 - startTime2) / 1_000_000.0 + " мс");
thirdArray = null;