Если вы зайдете в диспетчер задач, щелкните процесс правой кнопкой мыши и установите приоритет в режиме реального времени, это часто останавливает сбои программ или ускоряет их работу.
Что это делает в контексте программирования?
Если вы зайдете в диспетчер задач, щелкните процесс правой кнопкой мыши и установите приоритет в режиме реального времени, это часто останавливает сбои программ или ускоряет их работу.
Что это делает в контексте программирования?
Он вызывает SetPriorityClass().
Каждый поток имеет базовый уровень приоритета, определяемый значением приоритета потока и классом приоритета его процесса. Система использует базовый уровень приоритета всех исполняемых потоков, чтобы определить, какой поток получит следующий фрагмент процессорного времени. Функция SetThreadPriority позволяет установить базовый уровень приоритета потока относительно класса приоритета его процесса. Дополнительные сведения см. в разделе Расписание приоритетов.
Он указывает планировщику Widows быть более или менее жадным при выделении фрагментов времени выполнения вашему процессу. Выполнение в реальном времени никогда не приводит к выполнению (даже драйверам, согласно MSDN), что может вызвать зависание в вашем приложении, если оно ожидает внешних событий, но не имеет собственного выхода (например, Sleep
, SwitchToThread
или WaitFor[Single|Multiple]Objects
), как таковое с использованием реального времени следует избегать, если только вы не знаете, что приложение обработает его правильно.
Он работает, изменяя вес, присвоенный этому процессу в планировщике задач ОС. Ваш ЦП может выполнять только одну инструкцию за раз (если говорить очень, очень просто), а задача ОС состоит в том, чтобы постоянно обмениваться инструкциями из каждого запущенного процесса. Повышая или понижая приоритет, вы влияете на то, сколько времени ему отводится в ЦП по сравнению с другими приложениями, которые в настоящее время являются многозадачными.