0

我在 OS X 中运行这段代码:

NSLog(@"sqlite3_threadsafe %d", sqlite3_threadsafe());
NSLog(@"sqlite3_config return %d", sqlite3_config(SQLITE_CONFIG_SERIALIZED));
NSLog(@"sqlite3_threadsafe %d", sqlite3_threadsafe());
NSLog(@"sqlite3_libversion %s", sqlite3_libversion());

我明白了:

2013-09-10 11:49:51.177 SqliteTest[32864:303] sqlite3_threadsafe 2
2013-09-10 11:49:51.179 SqliteTest[32864:303] sqlite3_config return 0
2013-09-10 11:49:51.180 SqliteTest[32864:303] sqlite3_threadsafe 2
2013-09-10 11:49:51.180 SqliteTest[32864:303] sqlite3_libversion 3.7.12

第二个 sqlite3_threadsafe() 应该返回 3。

我的代码有什么问题?

4

1 回答 1

0

文档说:

sqlite3_threadsafe() 函数的返回值仅显示线程安全的编译时设置,而不是 sqlite3_config() 对该设置所做的任何运行时更改。换句话说,sqlite3_threadsafe() 的返回值不会因调用 sqlite3_config() 而改变。

于 2013-09-10T07:22:55.107 回答