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,
|
||||
"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": [],
|
||||
|
@ -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
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)**:
|
||||
- **Назначение**: Обеспечивают эксклюзивный доступ к ресурсу. Когда поток захватывает мьютекс, другие потоки должны ждать, пока он освободится.
|
||||
- **Применение**: В многопоточных приложениях для синхронизации доступа к общим данным.
|
||||
|
Loading…
Reference in New Issue
Block a user