Ho un'applicazione che utilizza SQLite (versione 3.7.2) per memorizzare i dati. Ho una connessione SQLite condivisa tra più thread che scrive e legge dallo stesso SQLite db. SQLite è compilato con DSQLITE_THREADSAFE = 1 che significa che SQLite è in modalità serializzata.SQLite: condivisione di connessioni tra thread per leggere e scrivere
Citando SQLite docs
Serialized: In modalità serializzato, SQLite può essere utilizzato in modo sicuro da multipli fili senza alcuna restrizione.
Al contrario l'entrata SQLite Wiki dice
Non usare la stessa connessione al database, allo stesso tempo in più di un thread
ho provato con un'applicazione di esempio che genera centinaia di thread e condivide un handle SQLite per leggere & scrivere che funziona correttamente.
Quindi la voce del wiki SQLite obsoleta o SQLite potrebbe non essere in grado di gestire la lettura e la scrittura che si verificano da thread diversi allo stesso tempo utilizzando la stessa connessione?
Ho letto che, ma mi chiedevo se la wiki fosse obsoleta o la connessione SQLite ora supporta 'reads' e' scrive' dalla stessa connessione da più thread? – omggs
@omggs hai ragione. I termini sono un po 'di confusione nei documenti SQLite. Per me * multi-thread * e * serialized * erano uguali, ma non lo sono. Uso le connessioni serializzate ma non le condivido tra i thread ... e ora ho imparato che è sicuro condividere :) – devundef
Grazie per la conferma! Il wiki SQLite è davvero obsoleto !!! – omggs