Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.28;
Скачать: CL | DM;

Вниз

Тормозит многопоточное приложение (SMTP-сервер)   Найти похожие ветки 

 
hardward   (2002-01-11 07:56) [0]

Тормозит многопоточное приложение (SMTP-сервер)

Даже при 3-х потоках загрузка системы 99%. Хотя предполагалось использовать 100-200.

Код примерно такой:

Procedure Thr.Execute;
Begin
Echo1.Connect;
…………………..
Str1 := Echo1.ReadLn;
Echo1.Writeln("HELO lis.com");
Str1:= Echo1.ReadLn;
Str1:= Echo1.Echo ("MAIL FROM: "
Дальше идет диалог с SMTP-сервером через Echo1.Echo
Echo1.Disconnect;
End;


 
Fellomena   (2002-01-11 12:12) [1]

Могу предположить (т.к. кода нет), что при работе с потоками ты их синхронизируешь... тогда конечно всё будет тормозить...
Привети код.


 
SV ©   (2002-01-13 15:11) [2]

Или сразу создаешь, про запас многовато потоков.


 
Vlad____   (2002-01-14 13:33) [3]

Дело в том, что когда потоки работают - они заметно все тормозят, и загрузка системы 99% это нормально даже при двух потоках. Micrisoft не рекомендует использовать много потоков работающих одновременно. Совсем другое дело если использовать торможение потоков ( см. в Делфи TEvent и т.п.) ,например, когда потоку нечего делать и нужно ждать данных из сокета, то TEvent.WaitFor(..) останавливает поток, а когда уже есть данные то TEvent.SetEvent и остановленный поток продолжает работать.


 
nikkie ©   (2002-01-14 13:59) [4]

загрузка системы 99% при двух потоках - это НЕ нормально

конечно, если внутри потоков крутится просто бесконечный цикл, то получишь эти самые 99%. но если этот цикл, например, выглядит как
while (GetMessage(...)) do begin ... end;
то загрузка будет нормальная по причине того, что пока нет "данных" GetMessage не возвращает управление потоку.

GetMessage в данном случае не причем, конечно. но грамотно организованное чтение из сокета точно также не должно тормозить.

мне кажется проблема - в компоненте (я так понимаю используется TNMEcho - что у него творится внутри можно только догадываться). может имеет смысл попробовать инди? эти компоненты писались с тем, чтобы быть использованными в многопоточных приложениях...



Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-90942
bos
2002-03-13 12:19
2002.03.28
Верхняя форма


1-90821
Alev
2002-03-08 14:52
2002.03.28
Как можно создать папку?


4-91131
ihacker
2002-01-20 17:39
2002.03.28
пиктограмма на панели задач


3-90738
aleks2000
2002-02-24 12:48
2002.03.28
<B>Как открыть ДОС базу данных dBase III в Делфи, так чтобы было написано на нормальном русском</B>


4-91130
Вадим
2002-01-27 21:11
2002.03.28
Выключение компьютера