Есть метод, который декомпресит файл, но этот процесс довольной долгий (а файлов 130+). Я решил реализовать это многопоточно.
for (int i = 0; files.length > i; i++) { //foreach тут не подойдёт.
try {
Decoder.main(files[i].getName(), true);
} catch (Exception ignored) {
}
}
Каким образом заставить 2 потока работать над 1 методом? Я могу разбить этот массив на несколько частей, и запустить потоки к каждой, но меня это не совсем устраивает.
int cores = Runtime.getRuntime().availableProcessors();
ExecutorService executor = Executors.newFixedThreadPool(cores);
Arrays(files).stream()
.map(File::getName)
.<Runnable>map(name -> () -> Decoder.main(name, true))
.forEach(executor::execute);
executor.shutdown();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости