私は.Net実装 - System.Data.SQLiteについて質問しています。 スレッドセーフな方法で使用するためのガイドラインはありますか?SQLite.Netはスレッドセーフですか?
私はSQLite自体がコンパイルできることを知っていますwith or without thread safety - System.Data.SQLiteはどのようにコンパイルされましたか?
私は.Net実装 - System.Data.SQLiteについて質問しています。 スレッドセーフな方法で使用するためのガイドラインはありますか?SQLite.Netはスレッドセーフですか?
私はSQLite自体がコンパイルできることを知っていますwith or without thread safety - System.Data.SQLiteはどのようにコンパイルされましたか?
スレッドセーフではないため、スレッド間で接続オブジェクトなどを共有することはできません。
readmeファイルに記載されているスレッドのバグフィックスは、同じファイルに対して複数の接続(つまりそれぞれ1つ)を使用する複数のスレッドと何らかの問題や競合状態が発生する可能性があります。
例えば、BEGINとBEGIN IMMEDIATEで言及されたスレッド競合条件は、スレッドがBEGINを発行しても、最初に発行される前にBEGINを発行した別のスレッドがデータベースを所有する可能性があるという不幸な影響をもたらしました。このような状況は修正されています。
.NETのデータベース接続(oracle、sqlite、ms SQLサーバー)はスレッドセーフではなく、周囲のオブジェクトもありません。
上記に少量を追加するには、ADO.NET仕様ではスレッドセーフであることを推奨または要求しません。スレッドごとに1つの接続(つまり、ADO.NETの設計)を使用することになっています。 –
読書はどうですか?スレッド間で読み取り専用接続を共有するのは安全ですか? – axe