Когда дело доходит до сканирования, вам может быть лучше использовать что-то на основе событий, такое как Twisted , которое использует неблокирующие асинхронные операции сокетов для извлечения и возврата данных по мере их поступления, а не блокирует их на каждом из них. ,
Асинхронные сетевые операции могут быть легко и обычно являются однопоточными. Сетевой ввод-вывод почти всегда имеет более высокую задержку, чем у CPU, потому что вы действительно не представляете, сколько времени займет страница, чтобы вернуться, и именно здесь асинхронная работа светит, потому что асинхронная операция намного легче, чем поток.
Редактировать: Вот простой пример того, как использовать getPage в Twisted для создания простого веб-сканера.