ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Threads (проблема)
  #1  
Старый 23.01.2009, 03:46
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию [Delphi] Threads (проблема)

Название не случайно.
Эти грёбаные потоки забрали у меня столько нервов, что просто ужас, но речь не о нервах.

Я поставил цель создать в Delphi 7 многопоточное приложение, которое будет работать с определённым узлом интернета.
Но этот узел нестабилен.
Когда к нему можно подкл, а когда низя.
Сначала я решил поступить так:
Я объявил массив для потоков.
Код:
TH: array[1..25] of Thread; //Кстати само имя класса Thread
А в самом потоке был цикл
Код:
while(условие, что есть данные) do
//Ну и тд.
Создавал я их иллементарно просто.
Код:
for i:=1 to 25 do
                         begin
                            TH[i]:=Thread.Create(False);
                            TH[i].FreeOnTerminate:=True;
                            TH[i].Priotity:=tpLowest;
                         end;
Но возникала проблемма, что через некоторое время все потоки засирались и дальше прога не работала.

Я решил поступить иначе.
Я кинул на форму таймер и на него стал создавать потоки разумеется с определённым интервалом
Код:
                            if (i>25) then i:=1;
                            TH[i]:=Thread.Create(False);
                            TH[i].FreeOnTerminate:=True;
                            TH[i].Priotity:=tpLowest;
                            i:=i+1;
Соответственно цикл из потока был убран и поток стал выполнять одно действие.

Но возникла другая проблемма.
Моя прога стала ох..енно жрать память.

Кто мне что посоветует?
На динамику всё проверил. Там всё освобождается.

Последний раз редактировалось Flenov; 23.01.2009 в 03:55..
 
Ответить с цитированием

  #2  
Старый 23.01.2009, 03:50
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Для начала код заключи в теги [code], не читабельно.
 
Ответить с цитированием

  #3  
Старый 23.01.2009, 03:50
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

Также пробовал по принципу создали подождали оттерминатели.
Непомогает.
 
Ответить с цитированием

  #4  
Старый 31.01.2009, 23:17
Аватар для telt
telt
Новичок
Регистрация: 04.01.2008
Сообщений: 6
Провел на форуме:
33792

Репутация: 0
По умолчанию

Цитата:
Сообщение от Flenov  
Также пробовал по принципу создали подождали оттерминатели.
Непомогает.
idhttp в потоках жрет память. используй сокеты.
 
Ответить с цитированием

  #5  
Старый 31.01.2009, 23:57
Аватар для W!z@rD
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

класс родитель Thread так ты и потомка еще так обозвал?! О_О

утечка памяти скорее всего в том что у тебя потоки не освобождаются.
проверь освобождаются ли они у тебя, process explorer показывается, колл-во активных потоков у приложения.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием

  #6  
Старый 01.02.2009, 10:56
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

Цитата:
Сообщение от telt  
idhttp в потоках жрет память. используй сокеты.
Ты прав.
Наверно, это самое нормальное решение.
 
Ответить с цитированием

  #7  
Старый 03.02.2009, 21:33
Аватар для stasoft
stasoft
Новичок
Регистрация: 03.02.2009
Сообщений: 15
Провел на форуме:
93182

Репутация: 21
По умолчанию

Мой самописный брут до 1700 потоков держит, TIdThreadComponent из индей девятых + из тех же индей IdHTTP.

Код:
 
for i:=1 to HowMany do begin
http[i]:=TIdHTTP.Create(form1);
thr[i]:=TIdThreadComponent.Create(form1);
thr[i].OnRun:=Form1.thrrun;
end;
потом:

Код:
 
for i:=1 to HowMany do begin
  thr[i].Start;
  Inc(vthrnum);
  Application.ProcessMessages;
  Sleep(15);
 end;
каждый новозапущенный тред узнает свой номер из втхрнум и запоминает его в своей локальной переменной. Соответственно каждый тред использует только свой ИдХТТП. Поясните что тут может *засираться*
 
Ответить с цитированием

  #8  
Старый 03.02.2009, 22:20
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

п**ц брутер на IdHTTP. Скоро наверное вообще будут ддос боты на Indy постоенные.

Лучше юзай вондовые потоки, а не класс дельфяный. потому что Виндовые они сами всё освобождают после свого закрытие. Юзай CreateThread

Также если работаешь с http то если тяжко заюзать сокеты, то хотябы юзай функции их wininet (InternetOpen итд итп)
 
Ответить с цитированием

  #9  
Старый 03.02.2009, 22:29
Аватар для stasoft
stasoft
Новичок
Регистрация: 03.02.2009
Сообщений: 15
Провел на форуме:
93182

Репутация: 21
По умолчанию

Смысл этого самоосвобождения если у меня в процедуре потока стоит while а сразу после него thr[num].stop; thr[num].free;
а насчет разницы в скорости тут вопрос, будет ли она достаточной чтобы заставить меня переписывать весь код уже готового брута.

[offtop] для ддоса можно IP*works заюзать для разнообразия [/offtop]

Последний раз редактировалось stasoft; 03.02.2009 в 22:33..
 
Ответить с цитированием

  #10  
Старый 06.02.2009, 00:59
Аватар для Flenov
Flenov
Участник форума
Регистрация: 22.11.2008
Сообщений: 142
Провел на форуме:
636446

Репутация: 32
По умолчанию

Весма буду благодарен за фрагменты кода.
Заранее спасибо.


В отличае от Миши у меня опыта поменьше.
Так что извиняйте за нерациональность.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема заливки шела Dimazzz Форумы 20 28.07.2006 05:53
Проблема с установкой proxy Utochka Уязвимости 3 09.05.2006 01:03
ЧТо то с апачем. Lord Nikon Windows 19 25.04.2006 01:07
Hydra проблема с брутом Utochka Уязвимости 2 02.03.2006 23:37
Удобный Http брут на Php KEZ PHP, PERL, MySQL, JavaScript 18 13.08.2005 13:34



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ