В последнее время Go стал широко обсуждаемым языком, и его часто сравнивают с Java. Неделя Go принесла нам очень интересное вступление статья Дредд , и мне стало интересно, как Java справится с описанной задачей.
Пока я писал код, стало понятно, что в Java тоже есть много интересного, но мало освещения в прессе.
Я постарался использовать самые интересные нововведения из Java7, надеюсь, что и новички, и опытные, но ленивые Java-разработчики найдут здесь полезную информацию.
Задача
Задача взята без изменений, и мы постараемся решить ее максимально близко к оригиналу.Также у нас будет несколько потоков для чтения данных, один поток для сохранения и уведомление по таймеру и при закрытии программы.
Параметры мы получим из командной строки при запуске.
Оригинальная постановка задачи
.срочно, под покровом темноты, скачать на модерацию полный дамп всех цитат[ http://vpustotu.ru/moderation/ ] для дальнейших секретных исследований.
Итак, нам нужна программа, которая:
- Необходимо последовательно обновлять и парсить (парсить) страницу, записывая цитаты.
- Должна быть возможность отбрасывать дубликаты.
- Он должен остановиться не только по команде, но и по достижении определенного количества «повторений», например 500!
- Поскольку это, скорее всего, займет некоторое время: вам нужно иметь возможность после закрытия продолжить «с того места, где вы остановились».
- Ну, раз уж это займет много времени, пусть делает свою грязную работу в несколько потоков.
Было бы неплохо иметь целых 4 потока (или даже 5!).
- И он сообщает об успехах на консоль каждые, скажем, 10 секунд.
- И пусть он принимает все эти параметры из аргументов командной строки!
Параметры командной строки
Начнём, как и в оригинальной статье, с начала, т.е.с разбора параметров.
Стандартной библиотеки для этих целей в Java нет, но есть сторонние на любой вкус.
Мне нравится jcommander. Решение, как говорится, «путем Java».
Теги: #разработка на Java #java #Goprivate static class CommandLine {
-
Первая Тренировка Скаутской Школы!
19 Oct, 24 -
Отражение И Генерация Кода В C++
19 Oct, 24