android singleton helper和删除/写入前读取
我有单例数据库助手来访问数据库。这部分没有问题。然而,我怀疑读写/删除的异步线程最终会出现问题 如果一个线程正在读取,而另一个线程正在删除;我对读取一个在删除之前无法读取的值表示怀疑。有人能证实这一点吗?使用singleton helper实现这一点的解决方案应该是什么 谢谢你的帮助android singleton helper和删除/写入前读取,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我有单例数据库助手来访问数据库。这部分没有问题。然而,我怀疑读写/删除的异步线程最终会出现问题 如果一个线程正在读取,而另一个线程正在删除;我对读取一个在删除之前无法读取的值表示怀疑。有人能证实这一点吗?使用singleton helper实现这一点的解决方案应该是什么 谢谢你的帮助 public CategoryDatabaseConnection(Context context) { mDbOpenHelper = CategoryDatabaseOpenHelper.get
public CategoryDatabaseConnection(Context context) {
mDbOpenHelper = CategoryDatabaseOpenHelper.getInstance(context, null, null, 0);
mOpenCounter = mDbOpenHelper.mOpenCounter;
}
public void open() throws SQLException {
// open database in reading/writing mode
int value = mOpenCounter.incrementAndGet();
if(value == 1 || mDatabase==null) {
// Opening new database
mDatabase = mDbOpenHelper.getWritableDatabase();
}
}
必须同步数据库助手,以便一次只能有一个线程访问它 要实现同步,只需将keywod synchronized放在类之前 前
这很好地回答了您的问题@MurtazaHussain,就我所了解的情况而言,我们只讨论了与一个助手的同步插入。我想知道,如果一个正在删除,另一个正在阅读,下面是关于该答案的链接,其中说明了锁定。我认为你应该仔细阅读它。是的,它是同步的。你也可以设置线程的优先级。优先级较高的线程将优先考虑。
public static synchronized singletonDBHelper()
{
// your code
}