Лучше использовать ReadWriteLock. Чтобы можно было параллельно считывать. Иначе у тебя сейчас однопоточная работа с TableProvider.