Новые возможности синхронизации
Windows включает следующие новые элементы программирования для синхронизации.
Windows 8
Новые функции
-
Удаляет барьер синхронизации.
-
Вызывает ожидание вызывающего потока на барьере синхронизации до тех пор, пока максимальное число потоков не войдет в барьер.
-
Извлекает результаты перекрываемой операции с указанным файлом, именованным каналом или устройством связи в течение указанного интервала времени ожидания. Вызывающий поток может выполнять оповещенное ожидание.
-
Указывает максимальное количество потоков и число спинов для нового барьера синхронизации.
-
Ожидает изменения значения по указанному адресу.
-
Пробуждение всех потоков, ожидающих изменения значения адреса.
-
Пробуждает один поток, ожидающий изменения значения адреса.
Новые функции с блокировкой
-
Выполняет атомарную операцию сложения для указанных значений LONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сложения для указанных значений LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию AND с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию AND с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию AND для указанных значений SHORT . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию AND с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Проверяет указанный бит указанного значения LONG64 и дополняет его. Эта операция является атомарной.
-
Проверяет указанный бит указанного значения LONG и устанавливает для него значение 0. Операция является атомарной и выполняется с семантикой упорядочения памяти.
-
Проверяет указанный бит указанного значения LONG и устанавливает для него значение 0. Операция является атомарной и выполняется с использованием семантики выпуска памяти.
-
Проверяет указанный бит указанного значения LONG и устанавливает для него значение 1. Операция является атомарной и выполняется с семантикой упорядочения памяти.
-
Проверяет указанный бит указанного значения LONG и устанавливает для него значение 1. Операция является атомарной и выполняется семантикой упорядочения памяти выпуска.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 32-разрядных значения и обменивается с другим 32-разрядным значением на основе результата сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Операция выполняется семантикой упорядочения памяти.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Обмен выполняется семантикой упорядочения памяти выпуска.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается с другим 16-разрядным значением на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается с другим 64-разрядным значением на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных 128-разрядных значения и обменивается с другим 128-разрядным значением на основе результатов сравнения.
-
Выполняет атомарную операцию сравнения и обмена с указанными значениями. Функция сравнивает два указанных значения указателя и обменивается данными с другим значением указателя на основе результатов сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает (уменьшает на единицу) значение указанной 32-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции.
-
Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти.
-
Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется семантикой упорядочения памяти выпуска.
-
Уменьшает (уменьшает на единицу) значение указанной 16-разрядной переменной в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает (уменьшает на единицу) значение указанной 64-разрядной переменной как атомарную операцию. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает для 64-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает для 8-разрядной переменной указанное значение в качестве атомарной операции.
-
Задает для 16-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
-
Задает для 16-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает для 64-разрядной переменной указанное значение в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Атомарным образом обменивается парой адресов. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарное сложение двух 32-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарное сложение двух 64-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти.
-
Увеличивает (увеличивает на единицу) значение указанной 32-разрядной переменной в виде атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в виде атомарной операции.
-
Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в виде атомарной операции. Операция выполняется с помощью семантики упорядочения памяти.
-
Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в виде атомарной операции. Операция выполняется с помощью семантики упорядочения памяти выпуска.
-
Увеличивает (увеличивает на единицу) значение указанной 16-разрядной переменной в виде атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Увеличивает (увеличивает на единицу) значение указанной 64-разрядной переменной в виде атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию ИЛИ с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию ИЛИ с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию ИЛИ с указанными значениями SHORT . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию ИЛИ с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Вставляет отдельно связанный список в передней части другого одноуровневого списка. Доступ к спискам синхронизируется в многопроцессорной системе. В этой версии метода не используется соглашение о вызовах __fastcall .
-
Выполняет атомарную операцию XOR с указанными значениями LONG . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR с указанными значениями char . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR с указанными значениями SHORT . Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR с указанными значениями LONGLONG . Операция выполняется атомарно, но без использования барьеров памяти.
Windows 7
Новые функции
-
Активирует указанный таймер ожидания и предоставляет сведения о контексте для таймера.
-
Пытается получить блокировку тонкого средства чтения и записи (SRW) в монопольном режиме. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за блокировку.
-
Пытается получить блокировку средства чтения и записи (SRW) в общем режиме. Если вызов выполнен успешно, вызывающий поток берет на себя ответственность за блокировку.
Новые структуры
-
Содержит сведения о контексте для таймера, активированного с помощью SetWaitableTimerEx.