SQLite (バージョン 3.7.2) を使用してデータを格納するアプリケーションがあります。同じ SQLite データベースに対して書き込みと読み取りを行う複数のスレッド間で SQLite 接続を共有しています。SQLite は DSQLITE_THREADSAFE=1 でコンパイルされます。これは、SQLite がシリアライズ モードであることを意味します。
SQLite ドキュメントからの引用
シリアル化: シリアル化モードでは、SQLite を複数のスレッドで制限なく安全に使用できます。
それどころか、SQLite Wikiのエントリには次のように書かれています
複数のスレッドで同時に同じデータベース接続を使用しないでください
何百ものスレッドを生成し、正常に動作する読み書き用の SQLite ハンドルを共有するサンプル アプリケーションを試してみました。
では、SQLite wiki エントリは古くなっていますか、それとも SQLite は、同じ接続を使用して同時に異なるスレッドから発生する読み取りと書き込みを処理できないのでしょうか?