描述
如果且仅当SQLite由于将SQLITE_THREADSAFE编译时选项设置为0而省略了互斥代码,则返回零。
C / C ++语法
int sqlite3_threadsafe(void); |
PB语法
FUNCTION sqlite3_threadsafe () AS LONG |
参数
[in]此函数没有参数。
返回值
对或错。
备注
可以使用或不使用互斥体来编译SQLite。当SQLITE_THREADSAFE C预处理器宏为1或2时,互斥体被启用,SQLite是线程安全的。当SQLITE_THREADSAFE宏为0时,互斥体将被省略。没有互斥体,从多个线程并发使用SQLite是不安全的。
启用互斥体会导致可衡量的性能损失。所以如果速度是非常重要的,禁用互斥体是有意义的。但是为了最大程度的安全起见,应启用互斥体。默认行为是为了启用互斥体。
该接口可以由应用程序使用,以确保将其链接的SQLite版本与SQLITE_THREADSAFE宏的所需设置一起编译。
此函数仅报告SQLITE_THREADSAFE标志的编译时互斥量设置。如果使用SQLITE_THREADSAFE = 1或= 2编译SQLite,则默认情况下会启用互斥体,但可以使用动词SQLITE_CONFIG_SINGLETHREAD,SQLITE_CONFIG_MULTITHREAD或SQLITE_CONFIG_MUTEX调用sqlite3_config完全或部分禁用。sqlite3_threadsafe函数的返回值仅显示线程安全性的编译时设置,而不是由sqlite3_config进行的该设置的任何运行时更改。换句话说,来自sqlite3_threadsafe的返回值通过调用sqlite3_config而不变。
C ++实现代码
SQLITE_API int sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; }