首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以为当前线程锁定SQLite表吗?

我可以为当前线程锁定SQLite表吗?
EN

Stack Overflow用户
提问于 2011-11-02 02:50:05
回答 1查看 1.4K关注 0票数 5

我的应用程序在一个由多个线程访问的SQLiteDatabase中管理它的所有数据。

现在,我一直在数据库本身上保持所有数据库调用的同步。

我想这样做的原因是,有时我想通过从服务器获取最新版本并从stratch重新构建表来刷新表。为了节省时间,我实际上正在制作第二个表,然后在完成后替换原来的表(当我这样做的时候,用一个同步的来锁定它)。

问题要么是我偶尔会让我的SQL调用停顿很长一段时间(由于同步锁),要么是在我的one表被复制的短暂时间内,当SQL调用试图自行运行时,我会得到一个错误。

有没有一个was可以让我的数据库在刷新时锁定其他操作,但让操作A、B、C等同时运行?

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-02 02:52:16

我很确定你想要的是一个ReadWriteLock。基本上,它在数据库上放置了两个不同的锁,一个用于读取,另一个用于写入。当写锁被锁定时,其他任何人都不能读或写。如果任何读锁被锁定(被任意数量的线程锁定),写锁将无法锁定,直到每个人都读完为止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7971371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档