Всем привет.
У меня возник насущный вопрос о кол-во одновременно работающих потоков. Я понимаю (может и не полностью) что такое GIL, и то, что 100, 200, 1000 потоков в питоне не будут работать нормально и просто зависнут.
Ко мне часто обращаются люди с просьбой написать всякие сканеры портов, которые смогут работать “ОЧЕНЬ БЫСТРО”, и на мой вопрос “насколько быстро” отвечают “ну, потоков в 500-1000”. Я говорю, что это невозможно, а они приводят мне какие-то доводы о том, что какой-то другой автор смог такое сделать. Я конечно же, сразу думаю, что человека обманули, т.к. скорее всего там нет параллельной работы сразу всех потоков, а стоит некий пул, из которого эти потоки по очереди запускаются.
Так вот, я хотел бы уточнить как оно на самом деле бывает, и если все-таки там пул, то где можно посмотреть вразумительный пример на эту тему.
И ещё такой вопрос:
будет ли лучше сделать асинхронный однопоточный сканер, вместо многопоточного?
Всем плюсую, даже за ответы вида “ты что, дурак?” =)