2009-05-19 3 views

답변

8

스레드로부터 안전하지 않으므로 스레드간에 연결 개체 또는 유사 항목을 공유 할 수 없습니다.

readme 파일에 언급 된 스레드 버그 수정은 동일한 파일에 대해 여러 개의 연결 (즉, 각각 하나씩)을 사용하는 여러 스레드와 어떤 문제가 발생할지 경쟁 조건이 발생할 수 있는지와 관련이 있습니다.

예를 들어, BEGIN 및 BEGIN IMMEDIATE에 대해 언급 한 스레드 경쟁 조건은 스레드가 BEGIN을 발행 했더라도 나중에 BEGIN을 발행 한 다른 스레드가 첫 번째 스레드가 수행되기 전에 데이터베이스 소유를 끝낼 수 있다는 불행한 결과를 초래했습니다. 이러한 유형의 상황이 수정되었습니다.

그러나 .NET의 데이터베이스 연결 (oracle, sqlite, msql 서버)은 스레드로부터 안전하지 않으며 주변 개체도 아닙니다.

+3

위의 내용을 약간만 추가하면 ADO.NET 사양은 스레드 안전성을 권장하지 않습니다. 스레드 당 하나의 연결을 사용한다고 가정합니다. 이것은 ADO.NET의 디자인입니다. –

+0

독서는 어떨까요? 스레드간에 읽기 전용 연결을 공유하는 것이 안전합니까? – axe