- Регистрация
- 28.04.2013
- Сообщения
- 184
- Благодарностей
- 11
- Баллы
- 18
Подскажите пожалуйста алгоритм многопоточности.
Есть ссылки 1-го, 2-го, 3-го и 4-го уровней
Я захожу на ссылку 1-го уровня и парсю ссылки 2-го уровня. Кладу их в список_1 (получается примерно 300 ссылок).
Затем беру из списка_1 ссылки второго уровня по одной с удалением и парсю ссылки 3-го уровня. Кладу их в список_2 (получается примерно 5000)
Затем беру из списка_2 ссылки 3-го уровня по одной с удалением и парсю ссылки 4-го уровня. Кладу их в список_3 (конечный). Получается примерно 700000 ссылок.
Когда проект работает в один поток - долго, но все нормально.
Когда включаешь много потоков, то как я предполагаю, логика дает сбой.
Какой в этой задаче должен быть правильный алгоритм. Можно его выполнить в одном проекте или разделить и запускать несколько.
Вообще как правильно можно решить эту задачу?
Есть ссылки 1-го, 2-го, 3-го и 4-го уровней
Я захожу на ссылку 1-го уровня и парсю ссылки 2-го уровня. Кладу их в список_1 (получается примерно 300 ссылок).
Затем беру из списка_1 ссылки второго уровня по одной с удалением и парсю ссылки 3-го уровня. Кладу их в список_2 (получается примерно 5000)
Затем беру из списка_2 ссылки 3-го уровня по одной с удалением и парсю ссылки 4-го уровня. Кладу их в список_3 (конечный). Получается примерно 700000 ссылок.
Когда проект работает в один поток - долго, но все нормально.
Когда включаешь много потоков, то как я предполагаю, логика дает сбой.
Какой в этой задаче должен быть правильный алгоритм. Можно его выполнить в одном проекте или разделить и запускать несколько.
Вообще как правильно можно решить эту задачу?