Удобство
Да, многопоточность в яве действительно сделана хорошо. Инструменты удобны и если хочется получить какой-то высокоуровневый инструмент для многопоточной программы, то он существует (а если нет, то один из существующих наверняка лучше того, который хотелось увидеть).
Простой пример:
Да, многопоточность в яве действительно сделана хорошо. Инструменты удобны и если хочется получить какой-то высокоуровневый инструмент для многопоточной программы, то он существует (а если нет, то один из существующих наверняка лучше того, который хотелось увидеть).
Простой пример:
private static String[] sites = {"www.google.com", "www.ya.ru", "www.yahoo.com"}; //создание пула потоков ExecutorService service = Executors.newCachedThreadPool(); List<Future<String>> futures = new ArrayList<Future<String>>(); for (int i = 0; i < sites.length; ++i) { //запуск нового потока с параметром из массива Future<String> future = service.submit(new ThreadWorker(sites[i])); futures.add(future); } //на этом этапе все потоки запущены System.out.println("threads started"); for (Future<String> future : futures) { //забираем результат выполнения потока //если поток ещё не завершился, то происходит ожидание System.out.println("get result from Future: " + future.get()); } //сообщаем пулу о том, что закончили пользоваться потоками service.shutdown();Подробнее?