2008-12-10 14 views
5

Ich benötige Datenbankzugriffsoperationen von mehreren Threads über ein Singleton-Objekt, das eine Datenbankverbindung enthält. Ich habe von der Website von SQLite3 gelesen und gesagt, dass 'eine sqlite3-Struktur nur in demselben Thread verwendet werden kann, der sqlite3_open() aufgerufen hat, um sie zu erstellen. Sie konnten eine Datenbank nicht in einem Thread öffnen und dann den Handle an einen anderen Thread übergeben, um ihn zu verwenden '. Ich frage mich unter meiner Situation, gibt es irgendeine Bedrohung der Thread-Unsicherheiten?Ist SQLite-Thread in dieser Situation sicher?

Antwort

11

Wenn die SQLite-Bibliothek mit -DSQLITE_THREADSAFE kompiliert wird, sind Sie mit den neueren SQLite 3-Versionen in Ordnung. says

Der Autor von SQLite:

Ab Version 3.5.0, erzwingt SQLite dies selbst seinen
eigenen internen mutexes verwenden, so dass die Anwendung ist kostenlos (versuchen) verwenden, um die
dieselbe Datenbank Verbindung von mehreren Threads gleichzeitig.

Verwandte Themen