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

View File

@ -1,5 +1,13 @@
{ {
"recentFiles": [ "recentFiles": [
{
"basename": "Блокировки",
"path": "_inbox/Блокировки.md"
},
{
"basename": "Deadlock",
"path": "_inbox/Deadlock.md"
},
{ {
"basename": "Two Phase Lock", "basename": "Two Phase Lock",
"path": "_inbox/Two Phase Lock.md" "path": "_inbox/Two Phase Lock.md"
@ -20,10 +28,6 @@
"basename": "Basically Available Soft state Eventual consistency", "basename": "Basically Available Soft state Eventual consistency",
"path": "_inbox/Basically Available Soft state Eventual consistency.md" "path": "_inbox/Basically Available Soft state Eventual consistency.md"
}, },
{
"basename": "Блокировки",
"path": "_inbox/Блокировки.md"
},
{ {
"basename": "Журналы в MySQL", "basename": "Журналы в MySQL",
"path": "_inbox/Журналы в MySQL.md" "path": "_inbox/Журналы в MySQL.md"
@ -195,10 +199,6 @@
{ {
"basename": "Least Recently Used", "basename": "Least Recently Used",
"path": "_inbox/Least Recently Used.md" "path": "_inbox/Least Recently Used.md"
},
{
"basename": "Most Recently Used",
"path": "_inbox/Most Recently Used.md"
} }
], ],
"omittedPaths": [], "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)**: - **Мьютексы (Mutexes)**:
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится. - **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным. - **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.