Реферат: Процессы, нити и волокна в ОС Windows

ZeroMemory (&si, sizeof(si));

si.cb = sizeof(si);

ZeroMemory (&pi, sizeof(pi));

if (! CreateProcess(NULL, «c:\\windows\\calc.exe», NULL, NULL, FALSE,

0, NULL, NULL, &si, &pi))

return 0;

// Close process and thread handles.

CloseHandle (pi.hProcess);

CloseHandle (pi.hThread);

return 0;

}

4. Создание нитей

Первичная нить создается автоматически при создании процесса. Остальные нити создаются функциями CreateThread и CreateRemoteThread (только в WinNT/2000/XP/Vista).

5. Завершение нитей

Нить завершается если

– Функция нити возвращает управление.

– Нить самоуничтожается, вызвав ExitThread .

– Другая нить данного или стороннего процесса вызывает TerminateThread .

– Завершается процесс, содержащий данную нить.

6. Создание волокон

Волокно может быть создано с помощью системного вызова CreateFiber из основной нити процесса или получено путем преобразования текущей нити с помощью функции ConvertThreadToFiber . Переключение между волокнами может быть организовано с помощью функции SwitchToFiber , но ее вызов можно осуществлять только из волокна.

Пример: Программа создает 4 волокна, каждое из которых выполняет переключение на следующее волокно, если число переключений больше 10, работа завершается.

#define WIN32_LEAN_AND_MEAN

#define _WIN32_WINNT 0x0400

#include «stdio.h»

#include «windows.h»

int Counter;

void *fiber[5];

void WINAPI Func (void *)

К-во Просмотров: 246
Бесплатно скачать Реферат: Процессы, нити и волокна в ОС Windows