vault backup: 2024-06-20 19:42:42

This commit is contained in:
Struchkov Mark 2024-06-20 19:42:42 +03:00
parent 74db29995e
commit 67ebdf28fc
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
5 changed files with 45 additions and 17 deletions

View File

@ -23,6 +23,14 @@
"markdownOnly": false,
"unresolvedLinks": false,
"recentFilesStore": [
{
"filepath": "_inbox/Блокировки.md",
"timestamp": 1718901746928
},
{
"filepath": "_inbox/Deadlock.md",
"timestamp": 1718901738130
},
{
"filepath": "_inbox/Two Phase Lock.md",
"timestamp": 1718901445162
@ -34,14 +42,6 @@
{
"filepath": "_inbox/Транзакция БД.md",
"timestamp": 1718901431282
},
{
"filepath": "knowledge/dev/database/Свойства транзакции БД (ACID).md",
"timestamp": 1718901429992
},
{
"filepath": "_inbox/Basically Available Soft state Eventual consistency.md",
"timestamp": 1718901056216
}
],
"bookmarkedFileStore": [],

View File

@ -1,5 +1,13 @@
{
"recentFiles": [
{
"basename": "Блокировки",
"path": "_inbox/Блокировки.md"
},
{
"basename": "Deadlock",
"path": "_inbox/Deadlock.md"
},
{
"basename": "Two Phase Lock",
"path": "_inbox/Two Phase Lock.md"
@ -20,10 +28,6 @@
"basename": "Basically Available Soft state Eventual consistency",
"path": "_inbox/Basically Available Soft state Eventual consistency.md"
},
{
"basename": "Блокировки",
"path": "_inbox/Блокировки.md"
},
{
"basename": "Журналы в MySQL",
"path": "_inbox/Журналы в MySQL.md"
@ -195,10 +199,6 @@
{
"basename": "Least Recently Used",
"path": "_inbox/Least Recently Used.md"
},
{
"basename": "Most Recently Used",
"path": "_inbox/Most Recently Used.md"
}
],
"omittedPaths": [],

11
_inbox/Deadlock.md Normal file
View File

@ -0,0 +1,11 @@
---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-06-20
zero-link:
- "[[00 Разработка]]"
parents:
linked:
---

View File

@ -14,4 +14,19 @@ linked:
Блокировка на запись в том числе блокирует на чтение.
Первая фаза: установка блокировки
Вт
Вторая фаза: снятие
Хотим изменить данные:
- ставим блокировку на запись
- ждем, пока все блокировки, которые были установлены до нашей, будут сняты
- меняем запись
- снимаем блокировку
Хотим прочитать строчку:
- Ставим блокировку на чтение
- Ждем пока все блокировки ==на запись==, которые были установлены до нашей, будут сняты.
- Считываем запись
- Снимаем блокировку
## Дополнительные материалы
- [Two-phase locking - Wikipedia](https://en.wikipedia.org/wiki/Two-phase_locking)

View File

@ -11,6 +11,8 @@ linked:
---
Блокировки в разработке, особенно в контексте многопоточности и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими потоками или процессами, чтобы избежать несогласованности данных или других конфликтов.
При использовании блокировок есть риск получить [Deadlock](Deadlock.md).
- **Мьютексы (Mutexes)**:
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.