Dirty Read
꽁스짱
C#
0
1353
2021.04.13 02:32
하나의 쓰레드가 파일에 쓰고 있는 중에 다른 쓰레드가 그 데이타를 읽게 된다면, 읽는 쪽에서는 완전한 데이타를 읽기 못할 수 있다. 흔히 DB에서 완전히 Commit되지 않은 데이타를 읽으려 할 때 이를 Dirty Read라 부른다. 파일시스템에서도 이러한 Dirty Read가 가능한데, 다음 예제는 2개의 쓰레드가 서로 FileShare.ReadWrite 공유를 하면서 한 파일을 동시에 읽고 쓰는 코드이다. 여기서 쓰기 쓰레드는 200 바이트를 쓰지만, 읽기 쓰레드는 쓰기가 채 마치기 전에 읽기를 끝내기 때문에 100 바이트만 읽게된다.