【问题标题】:Sqlite's Serialized modeSqlite 的序列化模式
【发布时间】:2011-10-21 13:23:49
【问题描述】:

在此处的文档中: http://www.sqlite.org/threadsafe.html

对于序列化模式,它说: "在序列化模式下,SQLite 可以不受限制地被多个线程安全使用。"

我想确保我理解那里提供的保证。如果使用“SQLITE_OPEN_FULLMUTEX”标志打开单个数据库连接,并且两个线程同时尝试在完全相同的时刻调用 sqlite3_exec,Sqlite 会自动序列化调用吗?

【问题讨论】:

    标签: sqlite thread-safety


    【解决方案1】:

    答案是肯定的。 sqlite3_exec() 将在输入函数时获取互斥体,并在离开函数时释放互斥体。在任何给定时间只有一个线程可以拥有互斥锁,因此在任何给定时间只有一个线程可以执行sqlite3_exec()。如果两个线程试图同时执行sqlite3_exec(),一个会等待另一个。

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多