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?
5
A
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
- 1. Ist in dieser Situation eine Sperre notwendig?
- 2. Was ist eine Alternative zu Eval in dieser Situation?
- 3. Was ist der Unterschied zwischen ref und & in dieser Situation?
- 4. Funktioniert Mediator Pattern in dieser Situation?
- 5. Verwendet linq in dieser Situation Overkill
- 6. Sollte ich Drools in dieser Situation verwenden?
- 7. Versprechen, wie in dieser Situation zu implementieren?
- 8. Wie Smart-Pointer in dieser Situation verwenden
- 9. Ist dieser Crypto Code Thread sicher?
- 10. Ist dieser SQL-Code gleichzeitig sicher?
- 11. Ist dieser Code Thread sicher? C#
- 12. Ist dieser Python-Code-Thread sicher?
- 13. Stark typisierte Eigenschaftsdeklarationen - ist dieser Code sicher?
- 14. Kann ich in dieser Situation eine bestimmte Zeile anzeigen?
- 15. Wie wird die (interaktive "r") Funktion in dieser Situation verwendet?
- 16. Muss in dieser Situation eine flush() (JPA-Schnittstelle) aufgerufen werden?
- 17. Wie schreibe ich eine jQuery in dieser Situation animieren?
- 18. Wie würden Sie in dieser Situation Unit Tests anwenden?
- 19. Wie gehe ich in dieser Situation mit der Speicherverwaltung um?
- 20. Warum Task.Delay doesn `t Arbeit in dieser Situation
- 21. Wie sicher zu verwenden und löschen für diese Situation
- 22. Warum keine ConcurrentModificationException in dieser Situation mit LinkedList-Iterator?
- 23. Wie gibt man in dieser Situation PHP-Variablen?
- 24. Wie benutze ich NICHT DependencyResolver.Current.GetService (...) in dieser Situation/
- 25. Speicherleck in dieser Situation mit DirectX COM-Objekten?
- 26. Wie wird Docker in dieser Situation am besten verwendet?
- 27. Warum funktioniert der Nullkoaleszenzoperator (??) in dieser Situation nicht?
- 28. Wie zeige ich Unterschiede in dieser Situation an?
- 29. Was muss in dieser Java-Situation serialisiert werden?
- 30. Wie an dieser besonderen Situation in Django Admin arbeiten?