1.2.9 스레드 안전 중요도 ★★★
스레드 안전(thread safe)은 멀티 스레드 환경에서 하나의 변수, 함수, 객체에 스레드 여러 개가 동시에 접근해도 문제가 없음을 의미한다. 스레드 안전하지 않은 경우는 다음과 같이 간단한 코드에서도 나타난다.
var++;
이 코드는 var 변수의 값을 메모리에서 CPU 레지스터로 로드 → 연산 처리 → 연산 결과를 메모리에 작성하는 과정을 거치게 된다. 만약 이 코드에 스레드 2개가 접근하면 잘못된 결과를 초래할 수 있다.
▲ 그림 1-22 스레드 안전이 이뤄지지 않는 경우