gpt4 book ai didi

multithreading - 在不同平台上使用 sqlite 和文件锁定是否存在已知问题?

转载 作者:行者123 更新时间:2023-12-03 16:19:29 24 4
gpt4 key购买 nike

我正在使用 sqlite 对专有文件进行索引,并且将使用多个线程(使用不同的 sqlite 句柄)访问数据库以进行读写。

我知道 sqlite 锁定文件是为了为读取器/写入器提供并发性,并且依赖于 OS 文件 api 进行锁定。

这在 windows 和 linux 上都很好,但是在 solaris 和 hpux 上,我对建议锁定在那里的工作方式不太有信心。

有谁知道 sqlite 在这些平台上的并发性如何工作?

最佳答案

根据我的经验(尽管基于有些过时的 SQLite 版本,即 3.0.x - 3.2.x),当存在某种争用时(即使它只是多个线程),您不希望依赖 SQLite 的默认锁定实现过程)。

主要问题是 SQLite 只是休眠了一会儿,然后如果文件已被锁定(直到忙等待超时到期),则再次尝试 - 这可能会导致应用程序中出现“数据库锁定”错误。除了 SQLite 自己的锁定之外,我实现的解决方法是使用我自己的锁定(在多线程进程中使用互斥锁)。

关于multithreading - 在不同平台上使用 sqlite 和文件锁定是否存在已知问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com