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

for(;) {

printf («Fiber Number % d\n», Counter % 4);

if ((Counter++)<10) {

SwitchToFiber (fiber[Counter % 4]);

} else break;

}

}

int main (int argc, char* argv[])

{

Counter=0;

fiber[0]=CreateFiber (0, Func, NULL);

fiber[1]=CreateFiber (0, Func, NULL);

fiber[2]=CreateFiber (0, Func, NULL);

fiber[3]=CreateFiber (0, Func, NULL);

// для переключения на первое волокно необходимо преобразовать текущую нить в волокно

fiber[4]=ConvertThreadToFiber(NULL);

SwitchToFiber (fiber[0]);

return 0;

}

7. Уничтожение волокон

Для принудительного уничтожения волокна применяется функция DeleteFiber . Также для уничтожения волокна могут быть использованы все функции, предназначенные для уничтожения нитей.

8. Wait-функции

Для приостановки выполнения работы нити можно использовать различные способы.

Функция Sleep() приостанавливает работу нити на заданное число миллисекунд. Если в качестве аргумента вы укажите 0 ms, то произойдет следующее. Нить откажется от своего кванта процессорного времени, однако тут же появится в списке нитей, готовых к выполнению. Иными словами произойдет намеренное переключение нитей (вернее сказать, попытка переключения – ведь следующей для выполнения нитью вполне может стать та же самая).

Пример. Программа создает процесс «Калькулятор» и через 15 секунд его уничтожает.

#include <windows.h>

int main (int argc, char* argv[])

{

STARTUPINFO StartUpInfo;

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