Войти

Показать полную графическую версию : Приложение с потоками.


Noglick
15-04-2011, 16:08
Товарищи, если кто-нибудь знает, как это отлажено сделать, напишите пожалуйста.

"Создать приложение, запускающее четыре дочерних потока. Каждый поток вы-
полняет вывод сообщения о том, что он создан, а затем выводит цифры своего
порядкового номера. Изменить приоритеты потоков так, чтобы их приоритеты
увеличивались по порядку их создания (первый поток – наименьший приоритет,
четвертый – наибольший). Вывести сведения о приоритетах потоков и пооче-
редно завершить их работу. "

Hilaly
19-04-2011, 18:43
я знаю =))

Потоки создаются с помощью функции
HANDLE WINAPI CreateThread(
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in SIZE_T dwStackSize,
__in LPTHREAD_START_ROUTINE lpStartAddress,
__in_opt LPVOID lpParameter,
__in DWORD dwCreationFlags,
__out_opt LPDWORD lpThreadId
);
Парметр lpStartAddress это ф-я которая будет выполняться в созданном потоке.

Приоритет потока устанавливается с помощью
BOOL WINAPI SetThreadPriority(
__in HANDLE hThread,
__in int nPriority
);
здесь hThread -> дескриптор возвращенный предыдущей ф-ей
А получить его можно при помощи
int WINAPI GetThreadPriority(
__in HANDLE hThread
);


Потоки выполняются до выполнения одного из следующих условий
Поток вызывает ExitThread
любой поток процесса вызывает ExitProcess
ф-я потока возвращает значение
любой поток вызывает TerminateThread с параметром - дескриптором данного потока
любой поток вызывает TerminateProcess с параметром - дескриптором процесса




© OSzone.net 2001-2012