- •Лабораторная работа № 2 потоки и работа с ними в операционной системе windows
- •Теоретические сведения
- •Создание потока
- •Приостановка потока
- •Возобновление потока
- •Завершение потока
- •Коды завершения в ос Windows
- •Установка приоритета потока
- •Относительные приоритеты потоков
- •Получение приоритета потока
- •Все функции работы с потоками
- •Пример работы с потоками
- •Программа работы
Получение приоритета потока
Функция GetThreadPriority извлекает значение приоритета для определяемого потока. Это значение, вместе с классом приоритета процесса потока, обуславливает уровень базового приоритета потока.
Синтаксис
int GetThreadPriority(
HANDLE hThread // дескриптор потока
);
Параметры
hThread – Дескриптор потока. В Windows NT /2000/XP дескриптор должен иметь право доступа THREAD_QUERY_INFORMATION.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - уровень приоритета потока. Если функция завершается с ошибкой, величина возвращаемого значения - THREAD_PRIORITY_ERROR_RETURN. Чтобы получать дополнительные информацию об ошибке необходимо вызвать функцию GetLastError.
Каждый поток регулирует уровень базового приоритета значением приоритета потока и классом приоритета его процесса. Операционная система использует уровень базового приоритета всех выполняемых потоков, чтобы установить, который поток получает следующий квант процессорного времени. Потоки установлены в очередь обслуживания циклическим способом в каждом уровне приоритета, и только тогда, когда нет никаких выполняемых потоков на более высоком уровне, будет происходить диспетчеризация потоков на более низком уровне.
Таблица №3
Все функции работы с потоками
Функция |
Описание |
AttachThreadInput |
Подключает обрабатывающий механизм ввода данных одного потока к такому же механизму другого потока.¶ |
CreateRemoteThread |
Создает поток, который выполняется в виртуальном адресном пространстве другого процесса.¶ |
CreateThread |
Создает поток, который исполняет код в пределах виртуального адресного пространства вызывающего процесса.¶ |
ExitThread |
Завершает работу потока.¶ |
GetCurrentThread |
Извлекает псевдодескриптор для текущего потока.¶ |
GetCurrentThreadId |
Извлекает идентификатор вызывающего потока.¶ |
GetExitCodeThread |
Извлекает данные о состоянии завершения заданного потока.¶ |
GetThreadPriority |
Извлекает значение приоритета для заданного потока.¶ |
GetThreadPriorityBoost |
Извлекает данные о состоянии органа управления форсированного приоритета заданного потока.¶ |
GetThreadTimes |
Извлекает данные о синхронизирующей информации для заданного потока.¶ |
OpenThread |
Открывает существующий объект потока.¶ |
ResumeThread |
Уменьшает счет времени приостановки работы потока.¶ |
SetThreadAffinityMask |
Устанавливает маску родственности процессора для заданного потока.¶ |
SetThreadIdealProcessor |
Устанавливает предпочтительный процессор для потока.¶ |
SetThreadPriority |
Устанавливает значение приоритета для заданного потока.¶ |
SetThreadPriorityBoost |
Отключает способность системы временно повышать (форсировать) приоритет потока.¶ |
Sleep |
Приостанавливает выполнение текущего потока на заданный промежуток времени.¶ |
SleepEx |
Приостанавливает работу текущего потока, пока не выполнено заданное условие.¶ |
SuspendThread |
Приостанавливает выполнение заданного потока.¶ |
SwitchToThread |
Заставляет вызывающий поток передать выполнение кода другому потоку, который является готовым запуститься на текущем процессоре.¶ |
TerminateThread |
Завершает работу потока.¶ |
ThreadProc |
Определяемая программой функция, которая служит как начальный адрес для потока.¶ |
TlsAlloc |
Назначает индекс локальной памяти потока (TLS).¶ |
TlsFree |
Освобождает индекс локальной памяти потока (TLS).¶ |
TlsGetValue |
Извлекает значение в области TLS вызывающего потока для заданного индекса TLS.¶ |
TlsSetValue |
Сохраняет значение в области TLS вызывающего потока для заданного индекса TLS.¶ |
WaitForInputIdle |
Ждет до тех пор, пока заданный процесс не дождется ввода данных пользователем без задержки ввода данных, или пока не истечет время задержки. |