Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Асемблер ВІДПОВІДІ!!!.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
124 Кб
Скачать
☆

23. Критичні секції.

Критинні секції. Поняття критичної секції дозволяє вберегти певні області програми так, щоб у цій частині програми в даний момент часу виконувався б тільки один потік.

Розглянемо функції для роботи з критичною секцією.

InitializeCriticalSection - дана функція створює об'єкт під назвою критична секція

Параметри функції

1-й параметр. Покажчик на структуру. Поля даної структури викорисговуються

тільки внутрішніми процедурами сенс довільний.

CRITICAL_SECTION STRUCT

DebugInfo DWORD?

LockCount LONG?

RecursionCount LONG?

OwningThread HANDLE?

LockSemaphore HANDLE?

SpinCount DWORD?

CRITICAL_SECTION ENDS

EnterCriticalSection – увійти в критичну секцію. Після виконання цієї функції даний потік стає власником даної секції. Наступний потік, виклавши цю функцію, буде перебувати в стані очікування . Параметр функції такий же, що і в попередній функції.

LeaveCriticalSection – залишити критичну секцію. Після цього другий потік, який був зупинений функцією EnterCriticalSection, стане власником критичної секції. Параметр функції LeaveCriticalSection, такий же, як і попередніх функцій.

DeleteCriticalSection – видалити об’єкт «критична секція». Параметр аналогічний попереднім.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]