13장 동시성
동시성 방어 기술
스레드 코드 테스트하기
문제점 : 단순한 일회성 문제로 치부함 → 잘못된 코드 위에 코드가 계속 쌓인다면?
- 다중 스레드를 고려하지 않은 순차 코드부터 제대로 돌게 만들자(POJO를 이용)
- 다중 스레드를 쓰는 코드 부분을 상황에 맞게 조율할 수 있게 작성
- 프로세서 수보다 많은 스레드를 돌려라
코드에 보조 코드를 넣어 강제로 실패해라
- 스레드 코드는 오류를 찾기 쉽지 않다
- 스레드 버그가 재현이 어려운 이유는 수천 가지 경로 중에 아주 소수만 실패하기 때문
→ 코드에 wait(), sleep(), yield() 등을 추가한다
자동화
보조코드를 자동으로 추가하려면 AOF, CGLIB, ASM 을 사용하자