vault backup: 2024-06-20 19:42:42
This commit is contained in:
parent
74db29995e
commit
67ebdf28fc
16
.obsidian/plugins/home-tab/data.json
vendored
16
.obsidian/plugins/home-tab/data.json
vendored
@ -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": [],
|
||||||
|
@ -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
11
_inbox/Deadlock.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- зрелость/🌱
|
||||||
|
date:
|
||||||
|
- - 2024-06-20
|
||||||
|
zero-link:
|
||||||
|
- "[[00 Разработка]]"
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
@ -14,4 +14,19 @@ linked:
|
|||||||
Блокировка на запись в том числе блокирует на чтение.
|
Блокировка на запись в том числе блокирует на чтение.
|
||||||
|
|
||||||
Первая фаза: установка блокировки
|
Первая фаза: установка блокировки
|
||||||
Вт
|
Вторая фаза: снятие
|
||||||
|
|
||||||
|
Хотим изменить данные:
|
||||||
|
- ставим блокировку на запись
|
||||||
|
- ждем, пока все блокировки, которые были установлены до нашей, будут сняты
|
||||||
|
- меняем запись
|
||||||
|
- снимаем блокировку
|
||||||
|
|
||||||
|
Хотим прочитать строчку:
|
||||||
|
- Ставим блокировку на чтение
|
||||||
|
- Ждем пока все блокировки ==на запись==, которые были установлены до нашей, будут сняты.
|
||||||
|
- Считываем запись
|
||||||
|
- Снимаем блокировку
|
||||||
|
|
||||||
|
## Дополнительные материалы
|
||||||
|
- [Two-phase locking - Wikipedia](https://en.wikipedia.org/wiki/Two-phase_locking)
|
@ -11,6 +11,8 @@ linked:
|
|||||||
---
|
---
|
||||||
Блокировки в разработке, особенно в контексте многопоточности и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими потоками или процессами, чтобы избежать несогласованности данных или других конфликтов.
|
Блокировки в разработке, особенно в контексте многопоточности и баз данных, относятся к механизмам, предотвращающим одновременный доступ к ресурсу несколькими потоками или процессами, чтобы избежать несогласованности данных или других конфликтов.
|
||||||
|
|
||||||
|
При использовании блокировок есть риск получить [Deadlock](Deadlock.md).
|
||||||
|
|
||||||
- **Мьютексы (Mutexes)**:
|
- **Мьютексы (Mutexes)**:
|
||||||
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
|
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
|
||||||
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.
|
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.
|
||||||
|
Loading…
Reference in New Issue
Block a user