|
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 42
|
||||||
Добавить многопоточность16.06.2015, 13:20. Показов 5854. Ответов 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 многопоточность Многопоточность Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|