Должен быть пограничный объект - удержание набора посещенных и ожидающих обхода URL. Должен быть какой-то поток, отвечающий за сканирование веб-страниц. Был бы также какой-то объект контроллера для создания обходных потоков.Самая быстрая архитектура для многопоточного веб-искателя
Я не знаю, какая архитектура была бы быстрее и удобнее. Как разделить обязанности, чтобы сделать как можно меньше синхронизации, а также минимизировать количество проверок, если текущий URL уже был посещен.
Должен ли объект контроллера отвечать за создание новых URL-адресов для рабочих потоков - это означает, что рабочие потоки должны будут сканировать все заданные URL-адреса, а затем спать в течение неопределенного времени. Контроллер будет интерпретировать эти потоки, поэтому поток обхода должен обрабатывать InterruptedException
(насколько он дорог в Java - кажется, что обработка исключений не очень быстро). Или, может быть, диспетчер должен только запускать потоки и позволять сканирующим нитям самостоятельно выбирать границы?