|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
||||||
Добавить многопоточность16.06.2015, 13:20. Показов 5752. Ответов 82
Метки нет (Все метки)
Доброго времени суток! Собрал кое-какой проект (VS 2008, для работы под windows), хочу добавить туда многопоточность, написал кое-что для теста, главный поток отрабатывает нормально:
error C2065: 'IP' : undeclared identifier error C2228: left of '.eof' must have class/struct/union Подозреваю, что не правильно передаю массив строк IP и не могу сообразить, как передать его внутрь потоковой функции, уважаемые, подскажите, как это должно выглядеть?
0
|
||||||
| 16.06.2015, 13:20 | |
|
Ответы с готовыми решениями:
82
C++ Многопоточность Многопоточность Многопоточность |
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 13:19 [ТС] | |
|
castaway, а кто-ж его знает, сколько выпадет адресов на долю каждого потока, тут не угадаешь же, каждый адрес может быть в потоке от долей секунды до нескольких секунд (3-15сек, зависит от того как отработает сокет с адресом), я бы рад выделить каждому адресу по потоку, но боюсь тогда будет куча ложных error connect, сети не тянут обычно более 1-2к одновременных коннектов
0
|
|
|
|
|
| 22.06.2015, 13:36 | |
|
Либо я тебя не понимаю, либо ты сам не понимаешь что хочешь сделать..
Моя логика проста: взял адрес - создал поток. Какие ты видишь проблемы и недостатки в этой логике? Не отвечай размыто и многословно. Ответь кратко и понятно.
0
|
|
|
240 / 213 / 84
Регистрация: 18.03.2010
Сообщений: 750
|
|||||||
| 22.06.2015, 13:36 | |||||||
|
У Вас как я понял потоков
0
|
|||||||
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 13:43 [ТС] | |
|
castaway, если будет 50к адресов, то создаётся 50к потоков, если все они будут одновременно пытаться подключиться по этим 50 000 ip-адресам, то ошибкой коннекта вернётся более 90-95% из них, поэтому я хочу ограничиться 100-2000 потоков
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 14:00 [ТС] | |
|
castaway, всё верно, каждый поток берёт адреса, пока они не закончатся, если каждому потоку дать строго определенное кол-во адресов это может сказаться на производительности парсинга, опять же, потому что в каких то потоках быстрее закончатся адреса и они будут простаивать без дела.
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
||
| 22.06.2015, 14:27 [ТС] | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 14:52 [ТС] | |
|
castaway, я подумал, что ты предлагаешь дать потокам одинаковое кол-во адресов для работы, исходя из того кода, где каждый поток брал по одному адресу
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 15:23 [ТС] | |
|
castaway,не совсем понимаю, можно в виде кода?
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 22.06.2015, 22:58 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|||||||||||
| 27.06.2015, 00:46 [ТС] | |||||||||||
|
castaway, решил проблему, вставил свой "костыль" вместо WaitForMultipleObjects, тоже своего рода ожидание, после которого можно закрывать потоки, проблема была в цикле, который в потоковой функции, случалось так, что кол-во итераций цикла превышало заданное значение на 1-3 единицы ( в зависимости от размера вектора) в результате переменная int a принимала значения выходящие за вектор, происходило обращение к несуществующему объекту вектора и затем обвал сейчас все работает стабильно:
0
|
|||||||||||
|
|
|||||||||||
| 27.06.2015, 07:51 | |||||||||||
|
Глядя на код мне просто не хочется с ним разбираться.
Взять к примеру кусок:
2. Какой смысл использовать к/секции без потоков? 3. Если WSAStartup вернула ошибку, значит система сокетов не была инициализирована, следовательно вызов WSACleanup лишний В самом конце старая история:
Код читать невозможно. Всё в вперемешку, форматирования никакого.
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
||||||
| 27.06.2015, 10:00 [ТС] | ||||||
|
castaway, теперь вроде читабельно
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
|
| 27.06.2015, 10:50 [ТС] | |
|
castaway, из ips.txt загружаются в вектор адреса (50к и более), далее потоки берут с вектора адреса и подключаются к ним через 110 (pop) порт, на консоль выводятся построчно ошибки соединения, либо текущий ip-адрес, размер ответа и ответ (если он есть), всё это попутно пишется в файл, кроме размера ответа.
0
|
|
| 27.06.2015, 10:50 | |
|
Многопоточность Многопоточность многопоточность в Qt многопоточность Многопоточность Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|