Составители:
Рубрика:
ция GetThreadPriority() возвращает значение, определяющее приоритет.
Для обозначения возможных значений приоритета в обеих функциях ис-
пользуется набор констант:
THREAD_PRIORITY_LOWESTCor" – на два уровня ниже приоритета процесса;
THREAD_PRIORITY_BELOW_NORMAL – на один уровень ниже приоритета
процесса;
THREAD_PRIORITY_NORMAL
– Тот же уровень приоритета, что и у процесса;
THREAD_PRIORITY_ABOVE_NORMAL
– На один уровень выше приоритета
процесса;
THREAD_PRIORITY_HIGHEST
– На два уровня выше приоритета процесса;
THREAD_PRIORITY_TIME_CRITICAL
– Уровень 15 (для обычных пользова-
тельских процессов);
THREAD_PRIORITY_IDLE
– Уровень 1 (для обычных пользовательских про-
цессов).
2.3.2. Прерывание и возобновление выполнения потоков
Прерванный поток приостанавливает свое выполнение и не учитывается
при распределении времени центрального процессора. Поток остается
в таком состоянии до тех пор, пока другой поток не возобновит его выполне-
ние. Остановку потока можно произвести, в частности, в том случае, если
пользователь прерывает выполнение определенной задачи. До тех пор, пока
задание не будет отменено, поток можно перевести в состояние ожидания. Ес-
ли пользователь решит продолжить работу, поток возобновит выполнение с
той точки, где он был остановлен. Для приостановки и возобновления выпол-
нения потоков служат функции:
DWORD SuspendThread (HANDLE hThread);
DWORD ResumeThread(HANDLE hThread).
Один и тот же поток можно последовательно остановить несколько раз,
не возобновляя его выполнения, однако каждой последовательной команде
SuspendThread() должна соответствовать ответная команда ResumeThread().
Система отсчитывает количество отмененных команд с помощью счетчика
прерываний. Каждая команда SuspendThread() инкрементирует значения счет-
чика, а каждая команда ResumeThread() декрементирует его. Обе функции воз-
вращают предыдущее значение счетчика в виде параметра типа DWORD. По-
ток возобновит свое выполнение только в том случае, если счетчик примет
значение 0.
Поток способен остановить себя, но он не в состоянии самостоятельно во-
зобновить свое выполнение. Однако он может на нужное время перенести себя
в режим ожидания. Функция Sleep() задерживает выполнения потока, удаляя
его из очереди программы-планировщика до тех пор, пока не пройдет задан-
24
ция GetThreadPriority() возвращает значение, определяющее приоритет. Для обозначения возможных значений приоритета в обеих функциях ис- пользуется набор констант: THREAD_PRIORITY_LOWESTCor" – на два уровня ниже приоритета процесса; THREAD_PRIORITY_BELOW_NORMAL – на один уровень ниже приоритета процесса; THREAD_PRIORITY_NORMAL – Тот же уровень приоритета, что и у процесса; THREAD_PRIORITY_ABOVE_NORMAL – На один уровень выше приоритета процесса; THREAD_PRIORITY_HIGHEST – На два уровня выше приоритета процесса; THREAD_PRIORITY_TIME_CRITICAL – Уровень 15 (для обычных пользова- тельских процессов); THREAD_PRIORITY_IDLE – Уровень 1 (для обычных пользовательских про- цессов). 2.3.2. Прерывание и возобновление выполнения потоков Прерванный поток приостанавливает свое выполнение и не учитывается при распределении времени центрального процессора. Поток остается в таком состоянии до тех пор, пока другой поток не возобновит его выполне- ние. Остановку потока можно произвести, в частности, в том случае, если пользователь прерывает выполнение определенной задачи. До тех пор, пока задание не будет отменено, поток можно перевести в состояние ожидания. Ес- ли пользователь решит продолжить работу, поток возобновит выполнение с той точки, где он был остановлен. Для приостановки и возобновления выпол- нения потоков служат функции: DWORD SuspendThread (HANDLE hThread); DWORD ResumeThread(HANDLE hThread). Один и тот же поток можно последовательно остановить несколько раз, не возобновляя его выполнения, однако каждой последовательной команде SuspendThread() должна соответствовать ответная команда ResumeThread(). Система отсчитывает количество отмененных команд с помощью счетчика прерываний. Каждая команда SuspendThread() инкрементирует значения счет- чика, а каждая команда ResumeThread() декрементирует его. Обе функции воз- вращают предыдущее значение счетчика в виде параметра типа DWORD. По- ток возобновит свое выполнение только в том случае, если счетчик примет значение 0. Поток способен остановить себя, но он не в состоянии самостоятельно во- зобновить свое выполнение. Однако он может на нужное время перенести себя в режим ожидания. Функция Sleep() задерживает выполнения потока, удаляя его из очереди программы-планировщика до тех пор, пока не пройдет задан- 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »