Составители:
lpThreadId - указатель на 32-битную переменную, которой будет присвоено значение
уникального идентификатора потока.
Пример: программа, порождающая поток
#include <stdio.h>
#include <conio.h>
#include <windows.h>
DWORD WINAPI Output( LPVOID Param )
{
while( TRUE )
{
printf( "A" ) ;
Sleep(100) ;
}
return( 0 ) ;
}
main()
{
HANDLE hThread ;
DWORD ThreadId ;
hThread = CreateThread( NULL, 0, Output, NULL, 0, &ThreadId ) ;
getch() ;
TerminateThread( hThread, 0 ) ;
return(0) ;
}
Потоки, обладающие высоким приоритетом, занимают большую часть времени
центрального процессора, раньше завершают свою работу и способны быстрее реагиро-
вать на действия пользователя. Если всем потокам будет присвоен одинаково высокий
приоритет, ничего хорошего не выйдет. Дело в том, что если нескольким потокам будет
присвоен один и тот же приоритет (не имеет значения, высокий или низкий), программа
- планировщик выделит им одинаковое время работы центрального процессора, и сама
идея приоритетов утратит смысл. Один поток сможет быстрее реагировать сигналы на
сигналы только в том случае, если будут замедлены другие потоки. Это же правило в
равной степени и применимо и к процессом. Старайтесь ограничивать приоритет всех
потоков и процессов низким или средним уровнем и присваивайте им высоких приори-
тет только по мере необходимости [8, 12].
Приведенные ниже функции проверяют или изменяют базовый приоритет потока.
BOOL SetThreadPriority(
HANDLE hThread // дескриптор потока
int iPriority ); // новый уровень приоритета
int GetThreadPriority ( HANDLE hThread );
Функция SetThreadPriority возвращает значение TRUE в случае успешного завер-
шения потока, а значение FALSE -при возникновении ошибки. Функция GetThread-
Priority возвращает значение, определяющее приоритет. Для обозначения возможных
значений приоритета в обеих функциях используется набор констант.
66
lpThreadId - указатель на 32-битную переменную, которой будет присвоено значение
уникального идентификатора потока.
Пример: программа, порождающая поток
#include
#include
#include
DWORD WINAPI Output( LPVOID Param )
{
while( TRUE )
{
printf( "A" ) ;
Sleep(100) ;
}
return( 0 ) ;
}
main()
{
HANDLE hThread ;
DWORD ThreadId ;
hThread = CreateThread( NULL, 0, Output, NULL, 0, &ThreadId ) ;
getch() ;
TerminateThread( hThread, 0 ) ;
return(0) ;
}
Потоки, обладающие высоким приоритетом, занимают большую часть времени
центрального процессора, раньше завершают свою работу и способны быстрее реагиро-
вать на действия пользователя. Если всем потокам будет присвоен одинаково высокий
приоритет, ничего хорошего не выйдет. Дело в том, что если нескольким потокам будет
присвоен один и тот же приоритет (не имеет значения, высокий или низкий), программа
- планировщик выделит им одинаковое время работы центрального процессора, и сама
идея приоритетов утратит смысл. Один поток сможет быстрее реагировать сигналы на
сигналы только в том случае, если будут замедлены другие потоки. Это же правило в
равной степени и применимо и к процессом. Старайтесь ограничивать приоритет всех
потоков и процессов низким или средним уровнем и присваивайте им высоких приори-
тет только по мере необходимости [8, 12].
Приведенные ниже функции проверяют или изменяют базовый приоритет потока.
BOOL SetThreadPriority(
HANDLE hThread // дескриптор потока
int iPriority ); // новый уровень приоритета
int GetThreadPriority ( HANDLE hThread );
Функция SetThreadPriority возвращает значение TRUE в случае успешного завер-
шения потока, а значение FALSE -при возникновении ошибки. Функция GetThread-
Priority возвращает значение, определяющее приоритет. Для обозначения возможных
значений приоритета в обеих функциях используется набор констант.
66
Страницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »
