Sqlite';s序列化模式

Sqlite';s序列化模式,sqlite,thread-safety,Sqlite,Thread Safety,在这里的文档中: 对于序列化模式,它表示: 在序列化模式下,SQLite可以被多个线程安全地使用,没有任何限制 我想确保我理解那里提供的担保。如果使用“SQLITE\u OPEN\u FULLMUTEX”标志打开单个数据库连接,并且两个线程同时尝试在完全相同的时间调用sqlite3\u exec,SQLITE是否会自动序列化调用?答案是肯定的sqlite3_exec()将在输入函数时获取一个互斥体,并在函数离开后释放互斥体。在任何给定时间只有一个线程可以拥有互斥锁,因此在任何给定时间只有一个线

在这里的文档中:

对于序列化模式,它表示: 在序列化模式下,SQLite可以被多个线程安全地使用,没有任何限制


我想确保我理解那里提供的担保。如果使用“SQLITE\u OPEN\u FULLMUTEX”标志打开单个数据库连接,并且两个线程同时尝试在完全相同的时间调用sqlite3\u exec,SQLITE是否会自动序列化调用?

答案是肯定的
sqlite3_exec()
将在输入函数时获取一个互斥体,并在函数离开后释放互斥体。在任何给定时间只有一个线程可以拥有互斥锁,因此在任何给定时间只有一个线程可以执行
sqlite3\u exec()
。如果两个线程试图同时执行
sqlite3\u exec()
,一个线程将等待另一个线程