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 Волокна
Работа с волокнами
Содержание раздела