勇芳软件工作室.汉化:  SQLite3 API Functions > General >

sqlite3_threadsafe

Previous pageReturn to chapter overviewNext page

描述

 

如果且仅当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; }