0

我正在制作一个应用程序,我需要有 2 个线程同时访问数据库。作为一种理想的做法,我使用单例类来处理数据库。但是,我在很多地方读到,即使在单例类中,如果两个线程尝试同时写入,其中一个也会失败。我应该如何解决这个问题或者有更好的方法来解决这个问题?

4

1 回答 1

0

SQLite 为您执行此操作,其他线程等待当前线程插入/更新,并且有一种方法isDbLockedByCurrentThread()可以知道您是否锁定了 DB。我仍然建议使用同步锁来确保并避免其他死锁和竞争条件。创建一个特殊的网关类,在一个地方定义所有更新/插入方法,制作这些方法synchronized

于 2012-11-28T12:52:54.577 回答