Кажется, что я могу сделать быстрый сканер с питоном двумя способами:
пул потоков с блочными гнездами
выбор неблокированных сокетов, асинхронность и т. Д.
Я думаю, что здесь нет особой необходимости в потоке, а решение №2 лучше.
что лучше и почему?
Витая обычно предпочтительнее асинхронной. Это асинхронный каркас ввода-вывода, который может также работать с пулами потоков .
В Python вы должны предпочесть асинхронный ввод-вывод потокам, просто потому что потоки являются гражданами второго сорта в своей канонической реализации (CPython) из-за GIL.