android singleton helper和删除/写入前读取

android singleton helper和删除/写入前读取,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我有单例数据库助手来访问数据库。这部分没有问题。然而,我怀疑读写/删除的异步线程最终会出现问题 如果一个线程正在读取,而另一个线程正在删除;我对读取一个在删除之前无法读取的值表示怀疑。有人能证实这一点吗?使用singleton helper实现这一点的解决方案应该是什么 谢谢你的帮助 public CategoryDatabaseConnection(Context context) { mDbOpenHelper = CategoryDatabaseOpenHelper.get

我有单例数据库助手来访问数据库。这部分没有问题。然而,我怀疑读写/删除的异步线程最终会出现问题

如果一个线程正在读取,而另一个线程正在删除;我对读取一个在删除之前无法读取的值表示怀疑。有人能证实这一点吗?使用singleton helper实现这一点的解决方案应该是什么

谢谢你的帮助

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
}