2015-10-07 2 views
1

Я до сих пор не могу обдумать это. У меня есть приложение, которое запускает несколько потоков. Может ли кто-нибудь просветить меня из следующего сценария?Как работает общий кэш в SQLite?

СЦЕНАРИЙ

  • Thread 1 открывает соединение с базой данных SQLite, запросов, и, таким образом, кэши, что он прочитал в памяти сервера. Тема 1 затем закрывает соединение
  • Затем Thread 2 открыть базу данных SQLite, выполняя почти аналогичный запрос в теме

ВОПРОС: ли нить 2 будет в состоянии получить доступ к кэшированных данных из потока 1, обеспечивая более быстрый запрос (eventhough Thread 1 закрыл соединение)?

ответ

0

documentation говорит:

Если режим разделяемой кэш включен и [процесс] устанавливает несколько соединений с одной и той же базе данных, соединения используют один данные и кэш схемы.

В вашем случае никогда не бывает нескольких подключений одновременно, поэтому ничего не используется.

+0

Спасибо за ответ ... но в моем случае есть несколько соединений .. но из двух отдельных потоков .... – user1034912

+0

Нет, первая нить закрывает свое соединение до того, как второй поток откроет один. –

+0

О, так что если Thread 1 остается открытым, когда поток 2 соединяется ... и затем поток 1 закрывается (но thead 2 остается открытым) ==> Достаточно ли кеш? – user1034912

Смежные вопросы