인프런 커뮤니티 질문&답변
Bitflag 질문
작성
·
346
0
안녕하세요 루키스님!
bitflag에 대해 질문있어서요.
LThreadId는 32비트 [][][][]이고 _lockFlag도 32비트[][][][] 인데,
그러면 _lockFlag가 64비트여야 되는거 아닌지요???
LThreadId가 [32][32][0][1]인 스레드가 Write중에
LThreadId가 [64][64][0][1]인 스레드가 WriteLock을 호출하면
뒤의 16비트를 깡그리 날리니깐 [0][1] == [0][1] ? 가 되는데 그럼 같은 스레드로 인식하여 Lock을 잡게되는 것 아닌지 궁금합니다.
아니면 제가 LThreadId에 대해 놓친게 있는지요 ㅠ
감사합니다.
퀴즈
멀티쓰레딩 환경에서 여러 쓰레드가 동시에 공유 데이터에 접근하여 값을 수정할 때 발생할 수 있는 예상치 못한 결과의 주요 원인은 무엇일까요?
데드락
쓰레드 지역 저장소(TLS) 충돌
경쟁 상태(Race Condition)
CPU 파이프라인 실패






넵 이 부분은 이해했습니다!
음... 그럼 스레드의 아이디는 0 ~ (2^16 - 1) 범위에서 넘기 쉽지않을 것이기 때문에 괜찮은건가요??