[Delphi] Threads (проблема)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Flenov, 23 Jan 2009.

  1. Flenov

    Flenov Member

    Joined:
    22 Nov 2008
    Messages:
    20
    Likes Received:
    17
    Reputations:
    0
    deleted
     
    #1 Flenov, 23 Jan 2009
    Last edited: 29 Jan 2015
  2. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Для начала код заключи в теги
    Code:
    , не читабельно.
     
  3. telt

    telt New Member

    Joined:
    4 Jan 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    idhttp в потоках жрет память. используй сокеты.
     
  4. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    класс родитель Thread так ты и потомка еще так обозвал?! О_О

    утечка памяти скорее всего в том что у тебя потоки не освобождаются.
    проверь освобождаются ли они у тебя, process explorer показывается, колл-во активных потоков у приложения.
     
    1 person likes this.
  5. stasoft

    stasoft Banned

    Joined:
    3 Feb 2009
    Messages:
    9
    Likes Received:
    5
    Reputations:
    2
    Мой самописный брут до 1700 потоков держит, TIdThreadComponent из индей девятых + из тех же индей IdHTTP.

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

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

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    п**ц брутер на IdHTTP. Скоро наверное вообще будут ддос боты на Indy постоенные.

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

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

    stasoft Banned

    Joined:
    3 Feb 2009
    Messages:
    9
    Likes Received:
    5
    Reputations:
    2
    Смысл этого самоосвобождения если у меня в процедуре потока стоит while а сразу после него thr[num].stop; thr[num].free;
    а насчет разницы в скорости тут вопрос, будет ли она достаточной чтобы заставить меня переписывать весь код уже готового брута.

    [offtop] для ддоса можно IP*works заюзать для разнообразия :D [/offtop]
     
    #7 stasoft, 3 Feb 2009
    Last edited: 3 Feb 2009