13장 동시성

동시성 방어 기술

스레드 코드 테스트하기

문제점 : 단순한 일회성 문제로 치부함 → 잘못된 코드 위에 코드가 계속 쌓인다면?

  1. 다중 스레드를 고려하지 않은 순차 코드부터 제대로 돌게 만들자(POJO를 이용)
  2. 다중 스레드를 쓰는 코드 부분을 상황에 맞게 조율할 수 있게 작성
  3. 프로세서 수보다 많은 스레드를 돌려라

코드에 보조 코드를 넣어 강제로 실패해라

  1. 스레드 코드는 오류를 찾기 쉽지 않다
  2. 스레드 버그가 재현이 어려운 이유는 수천 가지 경로 중에 아주 소수만 실패하기 때문

→ 코드에 wait(), sleep(), yield() 등을 추가한다

자동화

보조코드를 자동으로 추가하려면 AOF, CGLIB, ASM 을 사용하자