| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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. |