我有一個應用程序使用SQLite(版本3.7.2)來存儲數據。我有一個SQLite連接在多個線程之間共享,可以從同一個SQLite數據庫中讀寫。 SQLite使用DSQLITE_THREADSAFE = 1進行編譯,這意味着SQLite處於Serialized模式。SQLite:跨線程共享連接讀取和寫入
序列化引用:在串行模式時,SQLite可以安全地由多個用於 線程沒有限制。
相反的SQLite Wiki詞條中說
不要使用超過 一個線程在同一時間同一個數據庫連接
我有一個示例應用程序產卵嘗試數百個線程和共享一個SQLite句柄來讀取&寫入工作正常。
SQLite wiki條目是過時的還是SQLite可能無法處理使用相同連接同時從不同線程讀取和寫入的情況?
我讀到了,但我想知道維基是過時的還是SQLite連接現在支持來自多個線程的同一連接的'reads'和'writes'? – omggs 2012-07-31 14:36:56
@omggs你是對的。這些術語在SQLite文檔中有點混淆。對我來說*多線程*和*序列化*是相同的,但它們不是。我使用序列化連接,但不在線程之間共享它們......現在我瞭解到它可以安全地共享:) – devundef 2012-07-31 16:17:45
感謝您的確認! SQLite wiki確實過時了! – omggs 2012-08-01 04:04:43