Объединение совместно выполняющихся процессов в задания (Job)
Пулы потоков
Служба поддержки порядка потоков (Thread Ordering Service) – обеспечивает однократное выполнение потоков в нужном порядке в течение заданного периода
Служба планировщика мультимедийного класса (Multimedia Class Scheduler Service) – обеспечивает максимально допустимое использование процессора для мультимедийных приложений без запрета выделения ресурсов низкоприоритетным приложениям
Волокна (fiber) – возможность самостоятельно планировать выполнение модулей выполнения
Поддержка NUMA – (non-uniform memory access) – архитектуры многопроцессорных систем, в которой каждый процессор обладает собственной памятью и обменивается с остальными процессорами посредством кэшируемой шины
Работа с логическими процессорами и группами процессоров для поддержки более 64 логических процессоров
Пользовательский планировщик (User-Mode Scheduling UMS) – возможность написать собственный планировщик для управления переключением потоков
Управление потоками
Общие операции
CreateThread
OpenThread
SuspendThread
ResumeThread
GetCurrentThreadId
GetExitCodeThread
ExitThread – предпочтительный способ завершения потока
TerminateThread – опасна, стек потока не освобождается
WaitForSingleObject – ожидание завершения потока
GetTickCount – возвращает количество тиков (мс) с момента старта ОС
GetThreadTimes
Sleep
SuspendThread
Управление приоритетом
SetThreadPriority
GetThreadPriority
SetThreadPriorityBoost – разрешение или запрет динамического повышения приоритета потока (для активной задачи)
GetThreadPriorityBoost
Задание приоритетного процессора
SetThreadAffinityMask – на основе маски соответствия потока группе процессоров