7. 스레드 안전성 문제
1. 스레드 안전성(Thread Safety)
스레드 안전성이란 특정 클래스에 대해 여러 스레드들이 접근하여 해당 클래스를 사용하더라도 프로그램이 항상 정확하고 일관되게 동작할 수 있다는 것을 보장하기 위한 특성을 말함
만약 해당 클래스가 잘 설계되어 항상 정확하고 일관되게 동작할 수 있다면, 해당 클래스는 스레드에 있어서 안전(Thread safe)하다고 볼 수 있음
2. 스레드 안전성 문제(Thread safety issue)
반대로 해당 클래스가 잘 설계되어 있지 않다면, 해당 클래스는 스레드에 있어서 안전하지 않다고 볼 수 있으며, 이를 스레드 안전성 문제라고 함
멀티 스레딩 환경에서 동작하는 프로그램 내 2개 이상의 스레드가 하나의 공유 자원에 동시에 접근하여 값을 읽거나 변경하였을 때 발생할 수 있는 데이터 불일치 문제를 의미
→ 따라서 프로그램이 매번 다르게 동작하는 결과가 발생함

💡
Tip
스레드 안전성 문제가 발생할 수 있는 대표적인 기준
스레드 안전성 문제가 발생할 수 있는 기준은 아래와 같음
- 각 스레드들이 공통으로 접근할 수 있는 영역인지?
→ 스레드 안전성 문제 발생 - 각 스레드들이 자신만 접근 가능한 영역인지?
→ 스레드 안전성 문제가 발생하지 않음
Last updated on