【问题标题】:One SQLiteConnection per thread?每个线程一个 SQLiteConnection?
【发布时间】:2014-05-27 20:31:29
【问题描述】:

我正在使用来自 system.data.sqlite.org 的 SQLite

我们需要从多个线程访问数据库(出于各种原因)。我已经阅读了很多关于 sqlite 线程安全功能的文章(默认的同步访问模式对我来说很好)。

我想知道是否可以简单地为每个线程打开一个连接。这样的事情可能吗?我真的不关心比赛条件(请求尚未插入的东西)。我只对每个线程可以使用一个SQLiteConnection 对象访问数据这一事实感兴趣。

【问题讨论】:

    标签: c# multithreading sqlite


    【解决方案1】:

    是的。事实上,这是正确的方法,因为 SQLite 不是线程安全的(默认情况下。您可以使用某些选项使其成为线程安全编译)。只是为了确保它正常工作:SQLite 正在一些小型网站中使用,因此存在多线程 :)

    这里有更多信息:http://www.sqlite.org/faq.html#q6

    【讨论】:

      【解决方案2】:

      如果您为每个线程使用单独的连接,您应该没问题。

      来自docs

      请注意,SQLiteConnection 实例不保证是线程 安全的。你应该避免在几个中使用 same SQLiteConnection 同时线程。建议打开新连接 每个线程并在工作完成后关闭它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-01
        • 2012-09-03
        • 2016-01-16
        • 2017-06-15
        • 1970-01-01
        • 2012-04-29
        • 2016-03-19
        相关资源
        最近更新 更多