Безопасен ли поток SQLite в этой ситуации? - PullRequest
5 голосов
/ 10 декабря 2008

Мне требуются операции доступа к базе данных из нескольких потоков через одноэлементный объект, который содержит соединение с базой данных. Я прочитал на веб-сайте SQLite3, что «структура sqlite3 может использоваться только в том же потоке, который вызвал sqlite3_open () для ее создания. Вы не можете открыть базу данных в одном потоке, а затем передать дескриптор другому потоку для ее использования ». Мне интересно в моей ситуации, есть ли угроза небезопасности потока?

1 Ответ

11 голосов
/ 10 декабря 2008

Если библиотека SQLite скомпилирована с -DSQLITE_THREADSAFE, то вы в порядке с более свежими версиями SQLite 3.

Автор SQLite говорит :

Начиная с версии 3.5.0, SQLite принудительно применяет ее, используя
собственные внутренние мьютексы, поэтому приложение может (пытаться) использовать
одно и то же соединение с базой данных из нескольких потоков одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...