소프트웨어 사색
쓰레스세이프하다? 란 과연 무엇인가?
[하마] 이승현 (wowlsh93@gmail.com)
2018. 3. 2. 11:11
쓰레스세이프하다? 란 과연 무엇인가?
모든것이 불변이면? 동기화객체로 공유변수가 감싸져 있으면? TLS,STM,Actor,CSP 를 사용하면?
땡~~~!
쓰레드로 경쟁으로 인해서 솔루션이 원하는대로 동작하지 않는다면 모두 쓰레드 세이프하지 않는 것이다.
좁은 의미로 단어를 사용하다 보면 그게 넓은 범위로 벌어진다고 착각하기 쉽다.
객체 및 내부 변수를 불변으로 만들어 두었다고 쓰레드세이프하다고 착각하지말자.
그것을 어떻게 사용하냐에 따라서 쓰레드들은 당신이 원하는대로 동작하지 않은 결과를 내놓을 것이다.