Новые возможности синхронизации
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-разрядным значением на основе результата сравнения. Обмен выполняется с семантикой упорядочивания памяти по принципу release.
-
Выполняет атомарную операцию сравнения и обмена указанными значениями. Функция сравнивает два указанных 16-разрядных значения и обменивается еще одним 16-разрядным значением на основе результата сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сравнения и обмена указанными значениями. Функция сравнивает два указанных 64-разрядных значения и обменивается еще одним 64-разрядным значением на основе результата сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию сравнения и обмена указанными значениями. Функция сравнивает два указанных 128-разрядных значения и обменивается еще одним 128-разрядным значением на основе результата сравнения.
-
Выполняет атомарную операцию сравнения и обмена указанными значениями. Функция сравнивает два указанных значения указателя и обменивается другим значением указателя на основе результата сравнения. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает на единицу значение указанной 32-разрядной переменной как атомарная операция. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает (на единицу) значение указанной 16-разрядной переменной как атомарная операция.
-
Уменьшает значение указанной 16-разрядной переменной на единицу как атомарную операцию. Операция выполняется с семантикой упорядочения памяти.
-
Уменьшает значение указанной 16-разрядной переменной как атомарная операция. Операция выполняется с семантикой упорядочивания памяти выпуска.
-
Декрементирует (уменьшает на один) значение указанной 16-разрядной переменной как атомарная операция. Операция выполняется атомарно, но без использования барьеров памяти.
-
Уменьшает значение указанной 64-разрядной переменной на один как атомарная операция. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает 64-разрядную переменную заданному значению как атомарную операцию. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает 8-разрядную переменную в указанное значение как атомарную операцию.
-
Задает 16-разрядную переменную в указанное значение как атомарную операцию. Операция выполняется с помощью семантики упорядочения памяти.
-
Задает 16-разрядную переменную в указанное значение как атомарную операцию. Операция выполняется атомарно, но без использования барьеров памяти.
-
Задает 64-разрядную переменную заданному значению как атомарную операцию. Операция выполняется атомарно, но без использования барьеров памяти.
-
Атомарный обмен парой адресов. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарное добавление двух 32-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарное добавление двух 64-разрядных значений. Операция выполняется атомарно, но без использования барьеров памяти.
-
Значение указанной 32-битной переменной увеличивается на единицу в рамках атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Увеличивает значение указанной 16-разрядной переменной на один как атомарная операция.
-
Увеличивает (увеличивает на один) значение указанной 16-разрядной переменной как атомарная операция. Операция выполняется с помощью семантики упорядочения памяти.
-
Увеличивается (увеличивается на один) значение указанной 16-разрядной переменной в виде атомарной операции. Операция выполняется с помощью семантики упорядочения памяти по принципу release order.
-
Значение указанной 16-разрядной переменной увеличивается на один в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Увеличивает значение указанной 64-разрядной переменной на один в качестве атомарной операции. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию OR для указанных значений LONG. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию OR для указанных значений char. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию OR для указанных значений SHORT. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию OR для указанных значений LONGLONG. Операция выполняется атомарно, но без использования барьеров памяти.
-
Вставляет односвязный список в начало другого односвязного списка. Доступ к спискам синхронизируется в многопроцессорной системе. Эта версия метода не использует соглашение о вызовах __fastcall.
-
Выполняет атомарную операцию XOR для указанных значений LONG. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR для указанных значений char. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR для указанных значений SHORT. Операция выполняется атомарно, но без использования барьеров памяти.
-
Выполняет атомарную операцию XOR для указанных значений LONGLONG. Операция выполняется атомарно, но без использования барьеров памяти.
Windows 7
Новые функции
-
Активирует указанный таймер ожидания и предоставляет сведения о контексте таймера.
-
Пытается получить блокировку средства чтения или записи (SRW) в монопольном режиме. Если вызов выполнен успешно, вызывающий поток получает владение блокировкой.
-
Пытается получить блокировку замка чтения/записи (SRW) в общем режиме. Если вызов выполнен успешно, вызывающий поток берет во владение блокировку.
Новые структуры
-
Содержит сведения о контексте таймера, активированного с помощью SetWaitableTimerEx.