Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Thread

2.2K
25 января 2005 года
Bigzone2
40 / / 26.12.2004
Здравствуйте Господа.
Подскажите пожалуйста как сделать поток с бесконечным циклом.
Но так чтобы он НЕ кушал 100% ЦП ресурсов.
301
25 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Bigzone2
Здравствуйте Господа.
Подскажите пожалуйста как сделать поток с бесконечным циклом.
Но так чтобы он НЕ кушал 100% ЦП ресурсов.


 
Код:
for(;;)Sleep(666);
1.8K
26 января 2005 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by Bigzone2
Здравствуйте Господа.
Подскажите пожалуйста как сделать поток с бесконечным циклом.
Но так чтобы он НЕ кушал 100% ЦП ресурсов.



Ни один поток в системе не будет кушать 100% ресурсов ЦП, т.к. ему в режиме пользователя не получится задать такой приоритет. Иначе такой поток вообще подвесил бы систему.

2.2K
26 января 2005 года
Bigzone2
40 / / 26.12.2004
Цитата:
Originally posted by _const_


Ни один поток в системе не будет кушать 100% ресурсов ЦП,


Делаем for (;;){ i++;)
И Кушает приоритеты пробовал разные
Но с RealTime Весит машинку насмерть.

Цитата:
т.к. ему в режиме пользователя не получится задать такой приоритет. Иначе такой поток вообще подвесил бы систему.



Что за режим пользователя ?.

1.8K
27 января 2005 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by Bigzone2

Делаем for (;;){ i++;)
И Кушает приоритеты пробовал разные
Но с RealTime Весит машинку насмерть.



Что за режим пользователя ?.



Имеется в виду - не ядро системы.

Вообще-то я неправильно сформулировал.

Итак. Real-time относится к процессу, а не к потоку. Если процесс запущен с PriorityClass = NORMAL_PRIORITY_CLASS, т.е. по умолчанию, то ни один из его потоков не способен подвесить систему совсем. Другое дело, если PriorityClass = REALTIME_PRIORITY_CLASS. Тогда установив ThreadPriority = THREAD_PRIORITY_TIME_CRITICAL, получим поток с наивысшим приоритетом (31). Но и в этом случае, если есть другой поток с тем же приоритетом (что маловероятно, учитывая класс приоритета процесса), то он тоже будет получать процессорное время. Из этого следует, что даже один поток с наивысшим приоритетом не вешает систему насмерть - как минимум работает еще та часть системы, которая эти потоки переключает (то бишь ядро). Подробности - у Рихтера.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог