Necesito operaciones de acceso a la base de datos desde varios subprocesos, a través de un objeto singleton, que contiene una conexión de base de datos. Leí en el sitio web de SQLite3, diciendo que 'una estructura sqlite3 solo podría usarse en el mismo hilo que llamó a sqlite3_open() para crearla. No se puede abrir una base de datos en un hilo y luego pasar el controlador a otro hilo para que lo use '. Me pregunto bajo mi situación, ¿hay alguna amenaza de inseguridad en el hilo?¿Está seguro el subproceso de SQLite en esta situación?
5
A
Respuesta
11
Si la biblioteca SQLite está compilada con -DSQLITE_THREADSAFE está bien con las versiones más recientes de SQLite 3.
El autor de SQLite says:
partir de la versión 3.5.0, SQLite impone esta misma usando sus propios
mutex internos, por lo que la aplicación es gratuita para (intentar) utilizar la misma base de datos
conexión de múltiples hilos al mismo tiempo.
Cuestiones relacionadas
- 1. ¿Está seguro el subproceso RNGCryptoServiceProvider.GetBytes?
- 2. Está usando linq en esta situación overkill
- 3. Delphi - ¿Está seguro el subproceso TClientDataset?
- 4. ¿Es seguro el subproceso java.util.Hashtable?
- 5. ¿Es seguro el subproceso DocumentBuilder.parse()?
- 6. ¿Es seguro el subproceso SecurityContextHolder?
- 7. ¿Es seguro el subproceso java.lang.reflect.Method?
- 8. ¿Es seguro el subproceso java.sql.Connection?
- 9. limitaciones genéricas - no estoy seguro de cómo solucionar esta situación con una cualquiera/o el caso
- 10. ¿Es seguro el subproceso Joiner?
- 11. ¿El subproceso console.writeline es seguro?
- 12. ¿Cómo funciona Terracotta en esta situación?
- 13. ¿Es necesario un bloqueo en esta situación?
- 14. En Delphi, ¿es seguro el subproceso TDataSet?
- 15. En Delphi, ¿es seguro el subproceso OutputDebugString?
- 16. ¿Cuál es el propósito de la tilde en esta situación?
- 17. ¿Es seguro este subproceso?
- 18. Estructura de datos bidireccionales para esta situación
- 19. ¿es seguro el subproceso java.util? USID?
- 20. Java: seguro de subproceso RandomAccessFile
- 21. ¿Es seguro el subproceso JMS QueueSender?
- 22. ¿Es seguro el subproceso GHashTable (glib2)?
- 23. ¿El subproceso java.util.Calendar es seguro o no?
- 24. C#: ¿Debo molestarme en buscar nulos en esta situación?
- 25. ¿Es necesario llamar a flush() (interfaz JPA) en esta situación?
- 26. En WPF, ¿el subproceso UI dispatcher.begininvoke es seguro?
- 27. Archivos en XP: ¿Está seguro el "último acceso" seguro?
- 28. .NET - ¿Es seguro el subproceso de método Queue.Enqueue?
- 29. ¿El subproceso del método de extensión es seguro?
- 30. ¿Es seguro mantener datos confidenciales en SQLite