![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обьясните, пж, почему поток без sleep(1) тормозит? [D7, WinXP]
Zilog © (2005-02-24 12:31:00)Обьясните, пж, почему поток без sleep(1) тормозит?
Что собственно, Sleep(1) делает? (кроме задержки в одну мс)
iskatel (2005-02-25 00:20:00) [1]2Jolik а ты поставь бездействию системы приоритет time critical :-)
2Zilog
/"...На форуме куча тем была с вопросом почему тормозит поток..."/
так чего тебе еще надо то???
Набережных С. (2005-02-24 18:51:00) [2]
> Jolik © (24.02.05 18:28) [13]
> Если sleep не вызывать - "Бездействие системы" никогда не
> получит управление, но это не значит, что комп будет медленно
> работать, ибо многозадачность в NT вытесняющая.
> Но, все равно, так делать нельзя, хотя бы потому, что пользователь
> когда увидет - ахнет, и будет смеяться...
Дык смеяться уже хочется, даже еще не глянув и не ахнув...
Jolik (2005-02-24 18:28:00) [3]дело в том, что когда Вы вызываете sleep - это значит Вы сами передаете управление другим потокам и система знает, что в течение одной милисекунды вам его можно не возвращать. В общем случае Вы передаете управление "процессу" который зовется "Бездействие системы" - поэтому снижается показатель загрузки процессора, ибо он там не учавствует.
Если sleep не вызывать - "Бездействие системы" никогда не получит управление, но это не значит, что комп будет медленно работать, ибо многозадачность в NT вытесняющая.
Но, все равно, так делать нельзя, хотя бы потому, что пользователь когда увидет - ахнет, и будет смеяться...
Anatoly Podgoretsky (2005-02-24 14:33:00) [4]Не ну это к торможению никакого отношения не имеет. Интересует ответ количественный, например со sleep(1) поток отрабатывает за N ms, а без него за N+M ms
DiamondShark (2005-02-24 14:25:00) [5]Попробуем протелепать.
"Тормозит" == "занимает много процессорного времени".
Угадал?
Anatoly Podgoretsky (2005-02-24 14:24:00) [6]Zilog © (24.02.05 13:54) [7]
Не то! Тебе Инструктор (24.02.05 12:32) [1]
кто тормозит? как это выражается?
Задал конкретный вопрос. Будь добр ответит на него, может окажется все с точностью наоборот.
VMcL (2005-02-24 14:15:00) [7]>> Инструктор (24.02.05 13:57) [8]
Я бы даже сказал как раз наоборот: второй вариант более тормознутый.
:D
Инструктор (2005-02-24 13:57:00) [8]так поток тормозит сам по себе или тормозит что другое? Формулировать верно уборщица тетя Глаша будет?
вот что тут тормознутого:
for i:=1 to 1000 do begin
......
end;
в сравнении с:
for i:=1 to 1000 do begin
......
sleep(1)
end;
?!
Zilog (2005-02-24 13:54:00) [9]>>(24.02.05 12:58) [6]
така чего узнавать то? На форуме куча тем была с вопросом почему тормозит поток и с советами вставить sleep. Прдполагалось, что с ситуацией знакомы многие.
Anatoly Podgoretsky (2005-02-24 12:58:00) [10]Насчет торможения мы так и не узнаем.
Digitman (2005-02-24 12:46:00) [11]
> Zilog © (24.02.05 12:38) [3]
> А где про это можно подробно почитать?
в MSDN, в Microsoft Knowledge Base
DiamondShark (2005-02-24 12:45:00) [12]Поставить курсор на слово Sleep и нажать F1.
Zilog (2005-02-24 12:38:00) [13]А где про это можно подробно почитать?
Инструктор (2005-02-24 12:32:00) [14]кто тормозит? как это выражается?
DiamondShark (2005-02-24 12:32:00) [15]Кроме задержки он ещё передаёт процессорное время другим потокам.