Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Sqlite Database instance thread safe

I have a database with some tables. I want to update the tables using multiple threads. I will use same instance of SQLiteDatabase in all threads.

Please suggest if this approach is correct. Is Sqlite database threadsafe? Can two different threads update same table for different set of values at same time.

like image 502
Manish Avatar asked Jul 13 '11 07:07

Manish


1 Answers

[WRONG:] No, it is not thread-safe by default. You shoud use locking-related SQLiteHelper methods to provide thread safety.

[EDIT]: SQLiteDatabase class provides a locking mechanism by default (see comments) and if you are running on multithread, you don't have to consider changing anything to have thread-safety.

Search for 'thread' in this document: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

And read more on:

  • http://www.touchtech.co/blog/android-sqlite-locking/
  • Android threading and database locking
  • Android -- SQLite + SharedPreferences, 2 Threads Simultaneous Read/Write?
  • https://groups.google.com/forum/#!topic/android-developers/s3blUf7CRhU
like image 185
ahmet alp balkan Avatar answered Sep 19 '22 19:09

ahmet alp balkan