bus*_*ila 5 sqlite multithreading system.data.sqlite thread-safety
根据http://www.sqlite.org/threadsafe.html,使用sqlite时有三种不同的线程模式:单线程,多线程和序列化.当配置为序列化和多线程模式时,使用互斥锁(取决于它们使用的模式或多或少),而在单线程模式下,根本不使用互斥锁.
假设数据库仅用于查询(只读访问),是否可以使用单线程模式,同时仍然从不同的线程访问它?还是需要保护全球资源?
另外,可以以相同的方式使用默认的ADO.NET适配器System.Data.Sqlite吗?
SQLite 库有许多内部数据结构,即使对于只读数据库文件(缓存、编译语句、结果集等)也会发生更改,因此您绝不能从多个线程访问单线程连接。
ADO.NET 不提供任何线程安全保证,System.Data.SQLite 也不提供任何线程安全保证。