Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Потоки и общая очередь


Автор: hello19 21.3.2013, 16:21
Пишу программу для обхода веб-графа в ширину. 
Входные параметры: набор исходных ссылок, глубина обхода, максимальное число загружаемых страниц. 
Во время загрузки каждой страницы из нее извлекаются ссылки на страницы. По одной ссылке можно пройти только 1 раз. 
Программа должна завершать работы при достижении заданной глубины обхода или при достижении максимального числа загружаемых страниц.

Хочу реализовать так: создать общую очередь, из которой потоки будут брать url страниц. В потоке будет лишь загрузка страниц (getContent()).
Метод getContent() из потока будет передавать данные в основной поток, где уже и будут доставаться ссылки.

Собственно вопрос: как сделать так, чтобы потоки работали многократно и общались о очередью, которая пополняется основным потоком?/

Автор: batigoal 21.3.2013, 19:36
Ну это ж и есть основной механизм работы всяких там тред-пулов и очередей. Читать про http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html и http://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)