小巧、快速、可靠。
選擇其中三項。

SQLite C 介面

測試函式庫的執行緒安全性

int sqlite3_threadsafe(void);

僅且唯當 SQLite 在編譯時因 SQLITE_THREADSAFE 編譯選項設為 0 而忽略互斥鎖程式碼的情況下,sqlite3_threadsafe() 函式才會返回零。

SQLite 可以選擇是否編譯互斥鎖。當 SQLITE_THREADSAFE C 預處理器巨集為 1 或 2 時,互斥鎖會啟用,SQLite 就是執行緒安全的。當 SQLITE_THREADSAFE 巨集為 0 時,互斥鎖會被忽略。沒有互斥鎖,從多個執行緒同時使用 SQLite 是不安全的。

啟用互斥鎖會造成可察覺的效能損失。因此,如果速度至關重要,停用互斥鎖是有意義的。但為了最大的安全性,應該啟用互斥鎖。預設行為是啟用互斥鎖。

應用程式可以使用此介面來確保其連結的 SQLite 版本是以所需的 SQLITE_THREADSAFE 巨集設定進行編譯的。

此介面僅回報 SQLITE_THREADSAFE 旗標的編譯時互斥鎖設定。如果 SQLite 使用 SQLITE_THREADSAFE=1 或 =2 編譯,則預設情況下會啟用互斥鎖,但可以使用 sqlite3_config() 函式搭配 SQLITE_CONFIG_SINGLETHREADSQLITE_CONFIG_MULTITHREADSQLITE_CONFIG_SERIALIZED 等參數來完全或部分停用互斥鎖。 sqlite3_threadsafe() 函式的返回值僅顯示執行緒安全的編譯時設定,而不顯示 sqlite3_config() 對該設定進行的任何執行時更改。換句話說,sqlite3_config() 的呼叫不會改變 sqlite3_threadsafe() 的返回值。

有關更多資訊,請參閱執行緒模式文件。

另請參閱物件常數函式的列表。