![]() |
Проблема с потоками
Подскажите, с чем это связано или все так и должно быть. В общем, я писал несколько программ, которые работают в несколько потоков, которые в свою очередь отправляют HTTP запросы. Отправляют запрос и сразу же обрывают соединение, не дожидаясь ответа. Таймауты между отправкой запросов - 100 мсек. Не понимаю, с чем это связано, но такая программа при 10 потоках на моем компе 3,41 ГГц очень начинает подвисать система. Да и еще при том, что потоки работают с Priority tpLowest. Я все делаю правильно, - потоки освобождают себя из памяти и т.п... Но никак не пойму, почему система начинает глючить. Или так должно быть?
|
Напеши все характеристика компа! и исходники выложи
|
Без исходников трудно предположить в чем проблема.Возможно они одновременно обращаются без синхронизации к каким то данным, то есть соперничают за доступ к ним.Оттудого и такая загрузка камня.
|
типичный признак "бескоченого цикла" в котором есть какие-нибудь расчеты например.
|
У меня двухядерный 2,5 ГГц и держит запросто 1000 ожидающих потоков.
100 рабочий тоже держит и не грузит систему. Так что у тебя дело только в реализации. Помимо проверки циклов, еще обрати внимание на то как ты считываеш из сокета. Если ты читаеш по 1 байту, то это будет давать весомую нагрузку. |
Как продолжение размышлений о потоках:
Пишу программу под .NET... использую местами http запросы + regex .... Какое оптимальное количество работающих потоков на .NET приложение? А то где-то вычитал, что оптимально 25*кол-во процессоров |
Chrome~
Если работаешь с винсоками - мб забываеш освобождать WSA? (было как-то по невнимательности - через время тупо висла машина) А вообще не вижу смысла в закрытии/высвобождении процессов после каждого запроса, почему бы не сделать постоянный процесс в котором постоянно отправляются запросы, закрывается соединение и заново? |
Цитата:
некоторые факторы: 1. мощность процессора 2. колл-во ядер 3. ширина канала 4. оптимальность паттерна 5. загруженность ОС без твоего приложения это навскидку... Как ты собрался считать оптимальное колличество потоков? >>оптимально 25*кол-во процессоров В чем различие процесса от потока? И вообще что такое процессор????? ппц =\ Вы там че, курите, мурзилку читаете, надписи на заборе? жуть... советую еще это взглянуть |
Цитата:
Цитата:
Цитата:
Естественно предел памяти и системного времени никто отменял! |
Цитата:
|
| Время: 01:06 |