6

SQLite 可以管理并发访问吗?我将 SQLite 与 C/C++ 一起使用?如果不支持的话。有什么建议可以支持 SQLite 中的并发访问吗?

4

1 回答 1

9

是的,正如这里的文档所述:

SQLite 版本 3.0.0 引入了一种新的锁定和日志机制,旨在提高 SQLite 版本 2 的并发性并减少写入器饥饿问题。新机制还允许原子提交涉及多个数据库文件的事务。

和:

SQLite 使用 POSIX 咨询锁来实现 Unix 上的锁定。在 Windows 上,它使用 LockFile()、LockFileEx() 和 UnlockFile() 系统调用。

在这里

SQLite 使用文件系统锁来确保一次只有一个进程和数据库连接试图修改数据库。文件系统锁定机制是在 VFS 层中实现的,并且对于每个操作系统都是不同的。SQLite 取决于此实现是否正确。如果出现问题并且两个或多个进程能够同时写入同一个数据库文件,则可能会导致严重损坏。

于 2012-11-14T05:27:09.290 回答