В настоящее время я использую синглтон для доступа к моей базе данных (см. связанный вопрос ), но теперь, когда пытаюсь добавить некоторую фоновую обработку, все рушится. Я прочитал документацию по sqlite и обнаружил, что sqlite может работать с потоками, но каждый поток должен иметь свое собственное соединение с БД. Я пытаюсь использовать egodatabase , которая обещает упаковку sqlite с безопасностью потоков, но очень глючит, поэтому я возвращаюсь к своей старой библиотеке FMDB и начинаю видеть, как использовать ее в многопоточном режиме.
Поскольку у меня есть весь код с идеей синглтона, изменить все будет дорого (и многие соединения открытия / закрытия могут стать медленными), поэтому мне интересно, если, как подсказывают документы sqlite, создать пул для каждого соединения поможет. Если это так, как это сделать? Как узнать, какое соединение получить из пула (потому что 2 потока не могут совместно использовать соединение)?
Интересно, если кто-то уже использует sqlite в многопоточности с NSOperation или подобными вещами, мои поиски возвращают только "да, это возможно", но дайте подробности моему воображению ...