2008-12-10 86 views
5

我需要通過一個包含數據庫連接的單例對象從多個線程進行數據庫訪問操作。我從SQLite3的網站上讀到,他說'sqlite3結構只能用於調用sqlite3_open()創建它的同一個線程中。您無法在一個線程中打開數據庫,然後將句柄傳遞給另一個線程以供其使用。我想知道在我的情況下,是否有線程不安全的威脅?在這種情況下SQLite線程是否安全?

回答

11

如果使用-DSQLITE_THREADSAFE編譯SQLite庫,則可以使用更新的SQLite 3版本。

的SQLite says筆者:

與3.5.0版開始,SQLite的強制執行這本身就使用其
自己的內部互斥體,因此應用程序是免費的(嘗試)使用
同一個數據庫同時連接多個線程。