# 并发与锁机制

URL: https://caijiao.org/sqlite/transaction/concurrency
Source: docs/sqlite/transaction/concurrency.md
Description: 本章节介绍 SQLite 的并发控制与锁机制，讲解如何处理多线程访问和写操作冲突，确保数据安全和一致性。

SQLite 采用多种锁机制管理并发访问，确保数据在多线程和多进程环境下的安全性。

## 锁类型

- **共享锁（SHARED LOCK）**：允许多个读操作同时进行。
- **保留锁（RESERVED LOCK）**：表示将进行写操作，但不阻止其他读操作。
- **排他锁（EXCLUSIVE LOCK）**：完全独占，防止其他读写操作。

## 并发模型

- 读操作可并发执行。
- 写操作需要排他锁，写入期间阻塞其他操作。
- SQLite 使用数据库级锁，写操作时整个数据库文件被锁定。

## 事务隔离

[SQLite](/sqlite/) 默认隔离级别是 SERIALIZABLE，确保事务完整执行，避免脏读和不可重复读。

## 提升并发

- 使用 WAL（Write-Ahead Logging）模式提升写并发能力：

```sql
PRAGMA journal_mode = WAL;
```

WAL 允许读取和写入并发进行，适合高并发场景。

合理理解锁机制，有助于设计高效稳定的 SQLite 应用。
