Главная страница
    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.45 MB
Время: 0.005 c
1-90962
bas
2002-03-14 15:36
2002.03.28
чтение данных из файла Excel


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


1-90852
vovaS
2002-03-11 18:52
2002.03.28
Как считать выражение с заданной точностью?


1-90897
jenbond
2002-03-18 10:51
2002.03.28
Помоги


1-90957
AVT
2002-03-13 17:54
2002.03.28
Как поднять окно своего приложения поверх всех окон в win2k.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский