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

Вниз

Обьясните, пж, почему поток без sleep(1) тормозит?   Найти похожие ветки 

 
Zilog ©   (2005-02-24 12:31) [0]

Обьясните, пж, почему поток без sleep(1) тормозит?

Что собственно, Sleep(1) делает? (кроме задержки в одну мс)


 
Инструктор   (2005-02-24 12:32) [1]

кто тормозит? как это выражается?


 
DiamondShark ©   (2005-02-24 12:32) [2]

Кроме задержки он ещё передаёт процессорное время другим потокам.


 
Zilog ©   (2005-02-24 12:38) [3]

А где про это можно подробно почитать?


 
DiamondShark ©   (2005-02-24 12:45) [4]

Поставить курсор на слово Sleep и нажать F1.


 
Digitman ©   (2005-02-24 12:46) [5]


> Zilog ©   (24.02.05 12:38) [3]
> А где про это можно подробно почитать?


в MSDN, в Microsoft Knowledge Base


 
Anatoly Podgoretsky ©   (2005-02-24 12:58) [6]

Насчет торможения мы так и не узнаем.


 
Zilog ©   (2005-02-24 13:54) [7]

>>(24.02.05 12:58) [6]

така чего узнавать то? На форуме куча тем была с вопросом почему тормозит поток и с советами вставить sleep. Прдполагалось, что с ситуацией знакомы многие.


 
Инструктор   (2005-02-24 13:57) [8]

так поток тормозит сам по себе или тормозит что другое? Формулировать верно уборщица тетя Глаша будет?

вот что тут тормознутого:

for i:=1 to 1000 do begin
......

end;

в сравнении с:

for i:=1 to 1000 do begin
......
sleep(1)
end;


?!


 
VMcL ©   (2005-02-24 14:15) [9]

>>Инструктор   (24.02.05 13:57) [8]

Я бы даже сказал как раз наоборот: второй вариант более тормознутый.
:D


 
Anatoly Podgoretsky ©   (2005-02-24 14:24) [10]

Zilog ©   (24.02.05 13:54) [7]
Не то! Тебе Инструктор   (24.02.05 12:32) [1]
кто тормозит? как это выражается?

Задал конкретный вопрос. Будь добр ответит на него, может окажется все с точностью наоборот.


 
DiamondShark ©   (2005-02-24 14:25) [11]

Попробуем протелепать.
"Тормозит" == "занимает много процессорного времени".
Угадал?


 
Anatoly Podgoretsky ©   (2005-02-24 14:33) [12]

Не ну это к торможению никакого отношения не имеет. Интересует ответ количественный, например со sleep(1) поток отрабатывает за N ms, а без него за N+M ms


 
Jolik ©   (2005-02-24 18:28) [13]

дело в том, что когда Вы вызываете sleep - это значит Вы сами передаете управление другим потокам и система знает, что в течение одной милисекунды вам его можно не возвращать. В общем случае Вы передаете управление "процессу" который зовется "Бездействие системы" - поэтому снижается показатель загрузки процессора, ибо он там не учавствует.
Если sleep не вызывать - "Бездействие системы" никогда не получит управление, но это не значит, что комп будет медленно работать, ибо многозадачность в NT вытесняющая.
Но, все равно, так делать нельзя, хотя бы потому, что пользователь когда увидет - ахнет, и будет смеяться...


 
Набережных С. ©   (2005-02-24 18:51) [14]


> Jolik ©   (24.02.05 18:28) [13]


> Если sleep не вызывать - "Бездействие системы" никогда не
> получит управление, но это не значит, что комп будет медленно
> работать, ибо многозадачность в NT вытесняющая.
> Но, все равно, так делать нельзя, хотя бы потому, что пользователь
> когда увидет - ахнет, и будет смеяться...

Дык смеяться уже хочется, даже еще не глянув и не ахнув...


 
iskatel ©   (2005-02-25 00:20) [15]

2Jolik а ты поставь бездействию системы приоритет time critical :-)

2Zilog
/"...На форуме куча тем была с вопросом почему тормозит поток..."/
так чего тебе еще надо то???



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

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

Наверх




Память: 0.5 MB
Время: 0.042 c
11-1091013654
kosend
2004-07-28 15:20
2005.03.13
динамическое удаление и вставка в TMenu


1-1109279954
Руслана
2005-02-25 00:19
2005.03.13
Отправить письмо незаметно от пользователя


1-1109495489
Zapekank0
2005-02-27 12:11
2005.03.13
Использование RadioGroup


1-1109618333
Bloody-Wolf
2005-02-28 22:18
2005.03.13
Перевод числа


1-1109516816
Igor_thief
2005-02-27 18:06
2005.03.13
Выделение ячейки в ValueListEditor