--- aliases: - блокировок - блокировки tags: - maturity/🌱 date: - - 2024-05-24 zero-link: [] parents: linked: --- Блокировки в разработке, особенно в контексте [[Multithreading|многопоточности]] и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими [[Поток процесса ОС|потоками]] или [[Процесс ОС|процессами]], чтобы избежать несогласованности данных или других конфликтов. **Минусы блокировок:** - Есть риск получить [Deadlock](Deadlock.md) - Блокировок может быть много **Классификация:** - По области действия. - Строчные. Блокировка конкретной строки - Гранулярные - Предикативные - По строгости - Совместная. Shared lock. Можно читать заблокированные данные - Исключительная. Exclusive lock. С заблокированными данными ничего делать нельзя. **Виды реализаций:** - **Мьютекс (Mutex)**: - **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится. - **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным. - **Читательские/писательские блокировки (Reader/Writer Locks)**: - **Назначение**: Позволяют нескольким потокам читать ресурс одновременно, но блокируют доступ на запись. Если один поток пишет, все остальные потоки (и читатели, и писатели) должны ждать. - **Применение**: Когда ресурс чаще читается, чем пишется, для улучшения производительности. - **Семафоры (Semaphores)**: - **Назначение**: Управляют доступом к ресурсу, ограничивая количество потоков, которые могут одновременно им пользоваться. - **Применение**: Для ограничения количества одновременно выполняемых операций, например, подключения к базе данных. - **Блокировки баз данных (Database Locks)**: - **Назначение**: Предотвращают конкурентное выполнение операций, которые могут привести к некорректному состоянию данных. - **Применение**: В системах управления базами данных (СУБД) для управления транзакциями и поддержания целостности данных. *** ## Мета информация **Область**:: [[../../meta/zero/00 Разработка|00 Разработка]] **Родитель**:: **Источник**:: **Автор**:: **Создана**:: [[2024-05-24]] ### Дополнительные материалы - ### Дочерние заметки - [[Two Phase Lock]]