Здравствуйте! Возник такой вопрос. Как правильно отправлять N (N > 100) get-запроcов в секунду на указанный url?
Для решения этой задачи я испольховал ExecutorService i CountDownLatch.
CountDownLatch latch = new CountDownLatch(DEFAULT_LATCH_COUNT);
for (int i = 0; i < requestNumber; i++) {
executor.submit(RequestFactory.getInstance().createRequester(latch, url));
}
latch.countDown();
Но проблема в том что для каждого нового запроса я создаю новый поток(как отправить асинхронно по другому не знаю) и делаю await(), а после того как создано достаточное кол-во потоков - продолжаю их работу одновременно. По скольку время ожидания ответа сервера может быть разным, количество потоков растет и в конце концов может привести к окончанию памяти.
Подскажите есть ли варианты сделать это другим способом ?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости