Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Проблема с потоками (https://forum.antichat.xyz/showthread.php?t=130666)

Chrome~ 21.07.2009 01:16

Проблема с потоками
 
Подскажите, с чем это связано или все так и должно быть. В общем, я писал несколько программ, которые работают в несколько потоков, которые в свою очередь отправляют HTTP запросы. Отправляют запрос и сразу же обрывают соединение, не дожидаясь ответа. Таймауты между отправкой запросов - 100 мсек. Не понимаю, с чем это связано, но такая программа при 10 потоках на моем компе 3,41 ГГц очень начинает подвисать система. Да и еще при том, что потоки работают с Priority tpLowest. Я все делаю правильно, - потоки освобождают себя из памяти и т.п... Но никак не пойму, почему система начинает глючить. Или так должно быть?

K0rINf 21.07.2009 04:14

Напеши все характеристика компа! и исходники выложи

_nic 21.07.2009 10:34

Без исходников трудно предположить в чем проблема.Возможно они одновременно обращаются без синхронизации к каким то данным, то есть соперничают за доступ к ним.Оттудого и такая загрузка камня.

W!z@rD 21.07.2009 11:37

типичный признак "бескоченого цикла" в котором есть какие-нибудь расчеты например.

slesh 21.07.2009 13:55

У меня двухядерный 2,5 ГГц и держит запросто 1000 ожидающих потоков.
100 рабочий тоже держит и не грузит систему.
Так что у тебя дело только в реализации.
Помимо проверки циклов, еще обрати внимание на то как ты считываеш из сокета.
Если ты читаеш по 1 байту, то это будет давать весомую нагрузку.

FireFenix 21.07.2009 23:48

Как продолжение размышлений о потоках:
Пишу программу под .NET... использую местами http запросы + regex ....
Какое оптимальное количество работающих потоков на .NET приложение? А то где-то вычитал, что оптимально 25*кол-во процессоров

МongBa† 22.07.2009 02:34

Chrome~
Если работаешь с винсоками - мб забываеш освобождать WSA? (было как-то по невнимательности - через время тупо висла машина)

А вообще не вижу смысла в закрытии/высвобождении процессов после каждого запроса, почему бы не сделать постоянный процесс в котором постоянно отправляются запросы, закрывается соединение и заново?

W!z@rD 22.07.2009 06:56

Цитата:

Сообщение от FireFenix
Как продолжение размышлений о потоках:
Пишу программу под .NET... использую местами http запросы + regex ....
Какое оптимальное количество работающих потоков на .NET приложение? А то где-то вычитал, что оптимально 25*кол-во процессоров

хых))
некоторые факторы:
1. мощность процессора
2. колл-во ядер
3. ширина канала
4. оптимальность паттерна
5. загруженность ОС без твоего приложения

это навскидку... Как ты собрался считать оптимальное колличество потоков?

>>оптимально 25*кол-во процессоров
В чем различие процесса от потока? И вообще что такое процессор?????

ппц =\
Вы там че, курите, мурзилку читаете, надписи на заборе? жуть...
советую еще это взглянуть

FireFenix 22.07.2009 10:21

Цитата:

Вы там че, курите, мурзилку читаете, надписи на заборе? жуть...
Ах нуда, нынче кучу мануалов по оптимизации потоковых приложений =)
Цитата:

И вообще что такое процессор?????
эта такая чтучка в которой много ног и транзисторов ^_^
Цитата:

А то где-то вычитал, что оптимально 25*кол-во процессоров
это относилось к 25*[кол-во (процессоров || ядер)]

Естественно предел памяти и системного времени никто отменял!

Algol 22.07.2009 10:59

Цитата:

Сообщение от Chrome~
Не понимаю, с чем это связано, но такая программа при 10 потоках на моем компе 3,41 ГГц очень начинает подвисать система.

Какая ОС ? Если XP, то в ней ограничение на максимальное число конектов - 10.


Время: 01:06