
30.01.2010, 17:03
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами:
9427413
Репутация:
973
|
|
Сообщение от slesh
2 оlbaneс а зачем тебе потоки? Если спам, то быстрее через неблокируемые сокеты делать всё. И потом для обработки ставить по 2 потока на 1 ядро проца.
Для примера. Писал софт для коннекбек прокси. который на 4-х ядернике запускал 8 потоков. И он держал > 40k коннектов одновременных больше не проверяли. При этом обеспечивал 20k потоков спама. (т.е. софт спамящий с 4-х серверов спамил в 5к потоков с каждого) И всё довольно нормально проходило. При этом всё работало под Win2k3 и прога написана на Си
Так что тут особо не нужды делать потоки. да и потоки - это зло потому что не всегда они смогут дать производительность. К томуже их ограниченное кол-во может быть. Так что ток Win2k3 норм всё давало.
Единственное что тебе подойдет так это тока:
1) небольшое кол-во потоков для работы с сетью с основой на неблокируемых сокетах
2) относительно не большое кол-во потоков для генерации пакетов отправки.
т.е. чтото типа
Потоки работы с сетью берут разлоченый пакет, отправляют его, и лочат.
А потоки генерации видя залоченный пакет генерят в нем всё и разлачивают его.
И далее по кругу. Пойдет хорошо для мыльного спама.
А те потоки которые с сетью. они смотрят - если пакет залочен, то ничего не
+1 За неблокирующиеся сокеты. Многопоточность против них (в сетевых задачах) отсасывает. Вот только один нюанс - для того чтобы НОРМАЛЬНО на них писать то и кодер нужен НОРМАЛЬНЫЙ (как минимум)...
|
|
|