Windows для профессионалов


Windows для профессионалов

Некоторые соображения по библиотеке С/С++
Ой, вместо _beginthreadex я по ошибке вызвал CreateThread
Библиотечные функции, которые лучше не вызывать
Как узнать о себе
Преобразование псевдоописателя в настоящий описатель

Глава 7 - Планирование потоков, приоритет и привязка к процессорам
Приостановка и возобновление потоков
Приостановка и возобновление процессов
Функция Sleep
Переключение потоков


Определение периодов выполнения потока

Структура CONTEXT
Приоритеты потоков
Абстрагирование приоритетов
Программирование приоритетов
Динамическое изменение уровня приоритета потока
Подстройка планировщика для активного процесса
Программа-пример Scheduling Lab

Привязка потоков к процессорам
Глава 8 - Синхронизация потоков в пользовательском режиме
Атомарный доступ: семейство Inferlockect-функций
Кэш-линии
Более сложные методы синхронизации потоков
Худшее, что можно сделать
Критические секции

Критические секции: важное дополнение
Критические секции и спин-блокировка
Критические секции и обработка ошибок
Несколько полезных приемов

ГЛАВA 9 Синхронизация потоков с использованием объектов ядра
Wait-функции
Побочные эффекты успешного ожидания

События
Программа-пример Handshake
Ожидаемые таймеры

Ожидаемые таймеры и АРС-очередь
И еще кое-что о таймерах
Семафоры
Мьютексы

Отказ от объекта-мьютекса
Мьютексы и критические секции
Программа-пример Queue
Сводная таблица объектов, используемых для синхронизации потоков
Другие функции, применяемые в синхронизации потоков
Асинхронный ввод-вывод на устройствах
Функция WaitForlnputldle
Функция MsgWaitForMultipleObjects(Ex)

Функция WaitForDebugEvent
Функция SignalObjectAndWait
Глава 10 - Полезные средства для синхронизации потоков
Реализация критической секции: объект-оптекс
Программа-пример Optex
Создание инверсных семафоров и типов данных, безопасных в многопоточной среде
Программа-пример lnterlockedType
Синхронизация в сценарии "один писатель/группа читателей"
Программа-пример SWMRG

Реализация функции WaitForMultipleExpressions
Программа-пример WaitForMultExp
Глава 11 - Пулы потоков
Сценарий 1: асинхронный вызов функций

Сценарий 2: вызов функций через определенные интервалы времени
Программа-пример TimedMsgBox
Сценарий 3: вызов функций при освобождении отдельных объектов ядра

Сценарий 4; вызов функций по завершении запросов на асинхронный ввод-вывод
ГЛАВА 12 Волокна
Работа с волокнами
Содержание раздела