🔖 오늘 읽은 범위 : 13장, 동시성
synchronized
키워드)으로 감싼 모든 코드 영역은 한 번에 한 스레드만 실행이 가능하다.synchronized
문을 남발하는 코드는 바람직하지 않다.일반적인 방법으로, 스레드가 호출하는 POJO를 만든다. POJO는 스레드를 모른다. 따라서 스레드 환경 밖에서 테스트가 가능하다.
권장사항: 스레드 환경 밖에서 생기는 버그와 스레드 환경에서 생기는 버그를 동시에 디버깅하지 마라. 먼저 스레드 환경 밖에서 코드를 올바로 돌려라.
여기서 스레드 환경 밖의 코드는 다중 스레드를 고려하지 않은 순차/순수 코드를 의미한다고 볼 수 있다.
wait()
, sleep()
, yield()
, priority()
함수를 추가한다. 특별히 까다로운 코드를 테스트할 때 적합하다.