나는 현재 SQLiteDatabase 및 관련 클래스를 사용하여 동시성을 처리하는 방법을 더 잘 이해할 목적으로 grokking하고 있습니다 (현재 솔루션이 작동하지만 현재 중복 작업을 수행하고있는 것처럼 보입니다. , 왜냐하면 동시성이 나를 위해 처리되지 않는다고 가정하기 때문이다). 당신은 당신이 데이터베이스에 작성해야 할 때마다이 메소드를 호출 할 수 있도록 안드로이드, SQLite 연결 및 트랜잭션
오른쪽, SQLiteOpenHelper에 대한 안드로이드 문서에 대한하여 getWriteableDatabase 방법 일단 성공적으로 오픈
에 대해 다음과 같은 상태 는, 데이터베이스, 캐시
. ( 호출 close()를 더 이상 데이터베이스를 필요로하지 않을 때해야합니다.)
이 캐시되고 있는지 나에게 조금 불분명하다 (그래서 현재 나를 위해 캐싱을하는 래퍼가). 그래서, 여기서 무슨 일이 일어나고있는거야? 두 개의 SQLiteDatabase 인스턴스가 캐시/정적 인스턴스 주위에 래퍼됩니까?
또한 실제 잠금이 어떻게 처리됩니까? 동일한 SQLiteOpenHelper 인스턴스에 의해 생성 된 두 개의 개별 SQLiteDatabase 인스턴스가 있으면 트랜잭션 안전이 보장됩니까? 하나의 트랜잭션에서 독점 모드로 트랜잭션을 시작한 다음, 다른 SQLiteDatabase 인스턴스의 다른 스레드에서 다른 트랜잭션을 시작하는 경우, 첫 번째 트랜잭션이 완료 될 때까지 두 번째 트랜잭션이 시작되지 않을 것으로 예상됩니다. 어떻게 작동합니까?
감사합니다. +1 – JustDanyul