На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Interlocked Variable Access



The functions InterlockedCompareExchange, InterlockedExchangeAdd, InterlockedDecrement, InterlockedExchange, and InterlockedIncrement provide a simple mechanism for synchronizing access to a variable that is shared by multiple threads. The threads of different processes can use this mechanism if the variable is in shared memory.

The InterlockedIncrement and InterlockedDecrement functions combine the operations of incrementing or decrementing the variable and checking the resulting value. This atomic operation is useful in a multitasking operating system, in which the system can interrupt one thread's execution to grant a slice of processor time to another thread. Without such synchronization, one thread could increment a variable but be interrupted by the system before it can check the resulting value of the variable. A second thread could then increment the same variable. When the first thread receives its next timeslice, it will check the value of the variable, which has now been incremented not once but twice. The interlocked variable-access functions protect against this kind of error.

The InterlockedExchange function atomically exchanges the values of the specified variables. The InterlockedExchangeAdd function combines two operations: adding two variables together and storing the result in one of the variables.
The InterlockedCompareExchange function combines two operations: comparing two values and storing a third value in one of the variables, based on the outcome of the comparison.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Блокирующий Переменный Доступ



Функции InterlockedCompareExchange, InterlockedExchangeAdd, InterlockedDecrement, InterlockedExchange, и InterlockedIncrement обеспечивают простой механизм для синхронизации доступа к переменной, которая распространена многочисленной резьбой. Резьба других процессов может использовать этот механизм если переменная - в коллективной памяти.

InterlockedIncrement И функции InterlockedDecrement объединяют действия приращения или decrementing переменную и проверку результирующей величины. Это атомное действие полезное в multitasking операционной системе, в которой система может прервать один выполнение резьбы, чтобы предоставлять вырезку времени процессора другой резьбе. Без такой синхронизации, один резьба могла бы увеличить переменную но прервана системой прежде, чем она может проверить результирующую величину переменной. Резьба секунды могла затем увеличивать ту же переменную. Когда первая резьба получает свой следующий timeslice, она проверит величину переменной, какое теперь не увеличен как только но дважды. Переменный доступ блокирующих функций защищается против этого типа ошибки.

Функция InterlockedExchange атомно заменяет величины определенных переменных. Функция InterlockedExchangeAdd объединяет два действия: суммирующие две переменных вместе и храня результат в одной из переменных.
Функция InterlockedCompareExchange объединяет два действия: сравнение две величины и храня третью величину в одно из переменные, основанную в результате сравнения.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz