2012-03-28 3 views
6

system.data.sqlite.org에서 SQLite를 사용하고 있습니다.스레드 당 하나의 SQLiteConnection?

여러 스레드에서 데이터베이스에 액세스해야합니다 (여러 가지 이유로). 나는 sqlite 스레드 안전 기능에 대해 많이 읽었습니다 (기본 동기화 된 액세스 모드가 괜찮습니다).

스레드 당 연결을 열 수 있는지 궁금합니다. 이게 가능한가? 나는 정말로 경쟁 조건에 관심이 없다 (아직 삽입되지 않은 것을 요청한다). 스레드 당 하나의 SQLiteConnection 개체를 사용하여 데이터에 액세스 할 수 있다는 사실에만 관심이 있습니다.

답변

3

예. 사실 SQLite는 쓰레드에 안전하지 않기 때문에 (디폴트로, 어떤 옵션으로 쓰레드 세이프 컴파일을 할 수있다) 적절한 방법이다. 그리고 그냥 작동하는지 확인하기 : SQLite는 몇 가지 작은 웹 사이트에 사용되는, 그래서 멀티 스레딩 자세한 내용은 여기

이 :)입니다 : 당신은 당신이 잘되어야 스레드 당 별도의 연결을 사용 감안할 때 http://www.sqlite.org/faq.html#q6

4

가.

SQLiteConnection 인스턴스가 스레드 안전이 보장되지 않는다는 것을 참고 docs에서

. 동시에 여러 스레드에서 SQLiteConnection을 사용하지 않는 것이 좋습니다. 스레드 당 새로운 연결 을 열고 작업이 끝나면 닫는 것이 좋습니다.

관련 문제