Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 2.doc
Скачиваний:
18
Добавлен:
13.02.2015
Размер:
1.23 Mб
Скачать
  1. Получение приоритета потока

Функция 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

Ждет до тех пор, пока заданный процесс не дождется ввода данных пользователем без задержки ввода данных, или пока не истечет время задержки.