스킬(skills)/자바(Java)

Synchonized 를 어디에다 걸어야 하는지 헷갈리는 경우

후바스탱크 2014. 6. 18. 18:39


위 소스를 예를 들었을 때 synchronized 를 a 메소드에 걸어놔야지  순서대로 b 메소드가 종료 되고 다음번 스레드에 의해서 a 메소드가 실행된다.


만약 b메소드에 synchronized를 걸어놓는다면 b메소드가 정상적으로 종료 되던 말던 바로 다음번 스레드에 의해 a 메소드가 실행되므로 결과가 aaaaa...bbbb 이런식으로 나타나버리게 된다.


아주 기초적인 부분이지만 synchronized 를 어디에다 걸어야 할지 헷갈릴 경우 참고가 되길 바란다.