Desde las preguntas frecuentes de SQLite he sabido que:
Varios procesos pueden tener la misma base de datos abierta al mismo tiempo. Se pueden hacer múltiples procesos
SELECTal mismo tiempo. Sin embargo, solo un proceso puede hacer cambios en la base de datos en cualquier momento.
Así, en lo que a entender que puedo: 1) Leer db desde varios subprocesos ( SELECT) 2) Leer db desde varios subprocesos ( SELECT) y escribir desde un solo hilo ( CREATE, INSERT, DELETE)
Pero leí sobre el registro de escritura anticipada que proporciona más concurrencia ya que los lectores no bloquean a los escritores y un escritor no bloquea a los lectores . La lectura y la escritura pueden continuar simultáneamente.
Por último, tengo completamente confusa cuando descubrí que , cuando se especifica:
Aquí hay otras razones para obtener un error SQLITE_LOCKED:
- Intentando
CREATEoDROPuna tabla o índice mientras unaSELECTdeclaración aún está pendiente.- Intentando escribir en una tabla mientras a
SELECTestá activo en esa misma tabla.- Intentando hacer dos
SELECTen la misma tabla al mismo tiempo en una aplicación multiproceso, si sqlite no está configurado para hacerlo.- fcntl (3, falla la llamada F_SETLK en el archivo DB. Esto podría deberse a un problema de bloqueo de NFS, por ejemplo. Una solución para este problema es eliminar el DB y copiarlo de nuevo para que tenga un nuevo valor de Inode
Entonces, me gustaría aclarar por mí mismo, ¿es necesario evitar el bloqueo? ¿Puedo leer y escribir al mismo tiempo desde dos hilos diferentes? Gracias.

isolation_level=Noneembargo, tuve problemas de bloqueo hasta un set . Sin el modo de caché compartida, ¿cómo comparto instancias entre subprocesos?