Главная страница
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.071 c
14-1108977953
gfd
2005-02-21 12:25
2005.03.13
Где создать форум?


1-1109413341
Xerx
2005-02-26 13:22
2005.03.13
Динамическое выделение кусков текста в Rich е


14-1109053646
Vlad Oshin
2005-02-22 09:27
2005.03.13
http://rapira.ru/articles/article0423.htm


1-1109661324
BillyJeans
2005-03-01 10:15
2005.03.13
Добавление пункта в контекстное меню системы


9-1102707516
Zak3D[@Tm]
2004-12-10 22:38
2005.03.13
Привязка ко времени ( как это осуществляется )