바이트 배열 Private Data as Byte()
이 있다고 가정합니다. 이 배열은 클래스 내에서 private입니다. 이 클래스는 읽기 및 쓰기를위한 공용 함수를 Data
에 제공합니다.WriteLock on Write? 독서? 아니면 둘다?
이 클래스는 여러 스레드에서 액세스 할 수 있으므로이 클래스를 읽고 쓰는 것이 동시에 발생하지 않는 상황을 피하고자합니다.
현재로서는 문제를 피하기 위해 SyncLock을 사용하고 있습니다. 쓰기 기능에 SyncLock Data
을 넣을 수 있습니까? 아니면 읽기 기능에 있어야합니까? 아니면 둘다?
특정 코드 예제를 염두에두고 있지 않습니다. 필자는 쓰기 기능 'SyncLock이 쓰기 작업을 처음부터 독점적으로 수행하도록 만드는 경우 읽기 및 쓰기 기능을 모두 잠그는 것이 어떤 이점이 있는지 궁금합니다.
네, 그게 제가 피하고 싶습니다. 그러나 바이트 배열에 쓸 때'SyncLock'을 사용하면이 문제가 발생하지 않아야합니까? – Brad
잠금에 참여하는 스레드 만 보호됩니다. 잠기지 않은 스레드는 반 갱신 상태를 볼 수 있습니다. –
예. 읽기 작업이 아닌 쓰기 작업 만 잠그면 유효하지 않은 데이터를 읽을 수 있습니다. 그것이이 게시물의 내용입니다. –