25 lines
2.6 KiB
Markdown
25 lines
2.6 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- зрелость/🌱
|
||
date:
|
||
- - 2024-05-24
|
||
zero-link:
|
||
- "[[00 Разработка]]"
|
||
parents:
|
||
linked:
|
||
---
|
||
Блокировки в разработке, особенно в контексте многопоточности и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими потоками или процессами, чтобы избежать несогласованности данных или других конфликтов.
|
||
|
||
- **Мьютексы (Mutexes)**:
|
||
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
|
||
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.
|
||
- **Читательские/писательские блокировки (Reader/Writer Locks)**:
|
||
- **Назначение**: Позволяют нескольким потокам читать ресурс одновременно, но блокируют доступ на запись. Если один поток пишет, все остальные потоки (и читатели, и писатели) должны ждать.
|
||
- **Применение**: Когда ресурс чаще читается, чем пишется, для улучшения производительности.
|
||
- **Семафоры (Semaphores)**:
|
||
- **Назначение**: Управляют доступом к ресурсу, ограничивая количество потоков, которые могут одновременно им пользоваться.
|
||
- **Применение**: Для ограничения количества одновременно выполняемых операций, например, подключения к базе данных.
|
||
- **Блокировки баз данных (Database Locks)**:
|
||
- **Назначение**: Предотвращают конкурентное выполнение операций, которые могут привести к некорректному состоянию данных.
|
||
- **Применение**: В системах управления базами данных (СУБД) для управления транзакциями и поддержания целостности данных. |