digital-garden/dev/fundamental/Блокировка.md
Struchkov Mark be8fd578f3
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-10-09 09:23:45 +03:00

4.0 KiB
Raw Blame History

aliases tags date zero-link parents linked
блокировок
блокировки
maturity/🌱
2024-05-24

Блокировки в разработке, особенно в контексте Multithreading и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими Поток процесса ОС или Процесс ОС, чтобы избежать несогласованности данных или других конфликтов.

Минусы блокировок:

  • Есть риск получить Deadlock
  • Блокировок может быть много

Классификация:

  • По области действия.
    • Строчные. Блокировка конкретной строки
    • Гранулярные
    • Предикативные
  • По строгости
    • Совместная. Shared lock. Можно читать заблокированные данные
    • Исключительная. Exclusive lock. С заблокированными данными ничего делать нельзя.

Виды реализаций:

  • Мьютекс (Mutex):
    • Назначение: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
    • Применение: В многопоточных приложениях для синхронизации доступа к общим данным.
  • Читательские/писательские блокировки (Reader/Writer Locks):
    • Назначение: Позволяют нескольким потокам читать ресурс одновременно, но блокируют доступ на запись. Если один поток пишет, все остальные потоки (и читатели, и писатели) должны ждать.
    • Применение: Когда ресурс чаще читается, чем пишется, для улучшения производительности.
  • Семафоры (Semaphores):
    • Назначение: Управляют доступом к ресурсу, ограничивая количество потоков, которые могут одновременно им пользоваться.
    • Применение: Для ограничения количества одновременно выполняемых операций, например, подключения к базе данных.
  • Блокировки баз данных (Database Locks):
    • Назначение: Предотвращают конкурентное выполнение операций, которые могут привести к некорректному состоянию данных.
    • Применение: В системах управления базами данных (СУБД) для управления транзакциями и поддержания целостности данных.

Мета информация

Область:: ../../meta/zero/00 Разработка Родитель:: Источник:: Автор:: Создана:: 2024-05-24

Дополнительные материалы

Дочерние заметки