Sqlite中的多线程

本文关键字:多线程 Sqlite | 更新日期: 2023-09-27 18:11:36

我使用System.data.sqlite连接到Sqlite数据库,根据Sqlite文档,用户可以通过使用SQLITE_OPEN_NOMUTEX标志作为连接字符串的一部分来启用多线程。但是我在连接字符串中找不到任何接受标志的键。是否默认启用?如果不是,我该怎么做呢?

Sqlite中的多线程

线程模式由编译时、启动或运行时选项决定。更多细节在这里:

http://www.sqlite.org/threadsafe.html

文档说序列化是默认的,这意味着你可以在多个线程中使用-它会保护你。如果你想要更多的并行性,你可以使用多线程模式。

如果在多线程模式下使用它,请确保对给定连接的调用是同步的。如果你想并行工作,使用多个连接并保护连接。

API本身通过将db对象(连接)作为顺序调用的许多函数的参数来暗示这一点。例如,看看这些函数,你调用它们会得到一个错误:
int sqlite3_errcode(sqlite3 *db); 
const char *sqlite3_errmsg(sqlite3*);