gpt4 book ai didi

sqlite - SQLite并发读取-sqlite3_get_table

转载 作者:行者123 更新时间:2023-12-03 09:44:38 24 4
gpt4 key购买 nike

经过研究,我发现SQLite将处理concurrent read。但是,在尝试创建多线程并同时读取SQLite之后,它将在sqlite3_get_table上崩溃。但是,如果我使用序列化模式,那将是完全可以的。为什么会这样?我误会了吗?

这是我读取数据的方式:

ret = sqlite3_get_table(db, sql, &results, &rows, &columns, &err_msg);
if (ret != SQLITE_OK) {
// error handling
}
if (rows < 1) {
// error handling
}
else {
// reading data
}
sqlite3_free_table(results);


我也可以在sqlite3_get_table周围添加锁定/解锁来解决该问题。但是为什么我不能不加锁就调用这个函数呢?

最佳答案

链接的答案讨论了来自多个进程的并发访问。

并发访问非常好,只要每个访问都通过自己的连接即可。 (允许读取,写入已正确锁定。)

您的程序每个线程应使用一个连接。

关于sqlite - SQLite并发读取-sqlite3_get_table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49918421/

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