공유된 상태 변수를 사용할 때 잘못된 프로그램을 고치는 방법 3가지

  1. 해당 상태 변수를 스레드 간에 공유하지 않거나
  2. 해당 상태 변수를 변경할 수 없도록 만들거나
  3. 해당 상태 변수에 접근할 때 언제나 동기화를 사용한다.

애당초 스레드에 안전하게 설계하는 편이 좋다.

1. 스레드 안전성이란?

<aside> 💡 여러 스레드가 클래스에 접근할 때, 실행 환경이 해당 스레드들의 실행을 어떻게 스케줄하든 어디에 끼워 넣든 호출하는 쪽에서 추가적인 동기화나 다른 조율 없이도 정확하게 동작하면 해당 클래스는 스레드 안전한다고 말한다.

</aside>

<aside> 💡 상태 없는 객체는 항상 스레드 안전하다.

</aside>