인프런 커뮤니티 질문&답변
구현 방식에 대한 질문입니다.
작성
·
295
0
거대한 데이터를 복사해 가기 위한 Read를 하는 상황에서
Read가 끊임없이 발생한다고 한다면 write에서 전혀 잡을 수 없을것 같습니다.
writeLock에서 먼저 락을 잡을때 다른 writeLock이랑만(추가로 ReadLock들이 잠깐 쓰는동안만) 경합을 벌이고 이후 다른 Readlock들이 나갈때까지 기다려주는식의 코드는 어떤가요?
대부분 상황에서는 그런 경우가 거의 없는편인가요?
퀴즈
멀티쓰레딩 환경에서 여러 쓰레드가 동시에 공유 데이터에 접근하여 값을 수정할 때 발생할 수 있는 예상치 못한 결과의 주요 원인은 무엇일까요?
데드락
쓰레드 지역 저장소(TLS) 충돌
경쟁 상태(Race Condition)
CPU 파이프라인 실패
답변 1
1
Rookiss
지식공유자
writeLock은 상대적으로 드물게 일어날 때
RWLock을 사용하기에 큰 이슈는 없습니다.
참고로 강의 코드는 실제 프로젝트에서 사용한 코드와 유사하게 만들었습니다.
그리고 사실 멀티쓰레드에서 Lock을 0.00000000001초 단위로 잡고 그런건 아니라서,
그 정도로 엄격할 필욘 없다고 봅니다.





