2011-08-06 19 views
0

複数のスレッドからsqlite dbを使用することについても同様の質問がありますが、明確な答えはありません。 (すなわちデシベル)複数のスレッドからの読み込み用のsqliteアクセス

class MainActivity extends Activity { 
DbHelper db; //extends sqliteopenhelper 
... 
void M1() { 
    db.getReadableDatabase(); 
    Cursor c = db.query("...." 
    ... 
    db.close(); 
} 

void M1() { 
    db.getReadableDatabase(); 
    Cursor c = db.query("...." 
    ... 
    db.close(); 
} 

OK]をクリックして、これはマルチスレッドではなく、質問は

  1. はそれがsqliteopenhelperインスタンスの同じインスタンスを使用するには問題になるん、ということである: 次のシナリオを検討してください上記のように、さまざまな方法で何度も開閉しますか?
    そして、私のシナリオは以下の通りです:あなたは非同期シナリオでは、それはおそらく、二つの方法であることを見れば

    myAsync extends AsyncTask 
    doInBackground(.. {
    do something using M1(); //this is a background thread }} onResume()...{ myAsync.execute(); M2(); //this is the main thread ... }
  2. 書き込みについてはどのようにのみ - 読み取るため(同時に同じデータベースにアクセスすることができますか? )。しかし、彼らはSqliteOpenHelperの同じインスタンスを使用しています。それは衝突を引き起こすでしょうかもしそうなら、これを避ける方法はありますか?

  3. 私はsqliteデータベースと並行性の詳細について学びたいと思います
    アイデアをいただければ幸いです。

答えて

0

屋がない衝突の可能性があるが、別のスレッドが後天ときに、あなたのDBは閉じる​​ことができ、我々はその後、synchronizedキーワードを使用する場合、あなたがスレッドすなわち優先となどの「同期」のコンセプトのために行くことができ、一つのスレッドが完了それは他のスレッドが起動する

+0

"同期"について言及していただきありがとうございます、いくつかは、私は読書を行う場合は、制限と衝突がないと言う。本当?また、同期についても学びたいと思っていますが、そこでは役に立たないものはありません。リンク、ブログ、ソースをお勧めしますか?私はすでにアンドロイドデベロッパーを探しました。 –

+0

確かに、私は詳細情報を得る場合は間違いなく –

関連する問題