私のアプリケーションは、sqliteをバックエンドとして使用して、メモリ内のデータベース(:memory :)を作成します。sqliteのメモリ内のdbとマルチスレッド
私のマスタースレッドがインメモリデータベースへの接続を作成し、この接続を複数のスレッドが共有するようにします。これは可能ですか? SQLite 3.7.8は今すぐダウンロードできます。
the shared cachedは可能な方法ですか?
私のアプリケーションは、sqliteをバックエンドとして使用して、メモリ内のデータベース(:memory :)を作成します。sqliteのメモリ内のdbとマルチスレッド
私のマスタースレッドがインメモリデータベースへの接続を作成し、この接続を複数のスレッドが共有するようにします。これは可能ですか? SQLite 3.7.8は今すぐダウンロードできます。
the shared cachedは可能な方法ですか?
serialized modeを使用してインメモリデータベースへの接続を開くと、複数のスレッド間で接続が共有される可能性があります。
これを行うには、SQLiteをコンパイルする必要があります。threadsafe - これがデフォルトです。
アプリケーションによっては、ディスク上のデータベースへの大きな共有キャッシュや、読み取りスレッドが多い場合はWALモードでパフォーマンスが向上する場合があります。
例:メモリ:: `メモリ内の独立したDBを作成します... http://www.sqlite.org/inmemorydbを参照してください
sqlite3 *pDb
if (sqlite3_open_v2(":memory:", &pDb, SQLITE_OPEN_FULLMUTEX, NULL) == SQLITE_OK) {
start_thread1_with_db_handle(pDb);
start_thread2_with_db_handle(pDb);
// etc.
}
私は'へのすべての接続ので、そうは思いません.htmlを – Yahia
たぶん、[この質問]の重複した[1] [1]:http://stackoverflow.com/questions/3267077/can-i-achieve-scalable-multi-threaded-access-メモリ内のsqliteデータベース –
@NicolasModrzykあなたのリンクには何の答えもありません。しかしそれは実際には同じ質問です。 – cateof