위 소스를 예를 들었을 때 synchronized 를 a 메소드에 걸어놔야지 순서대로 b 메소드가 종료 되고 다음번 스레드에 의해서 a 메소드가 실행된다.
만약 b메소드에 synchronized를 걸어놓는다면 b메소드가 정상적으로 종료 되던 말던 바로 다음번 스레드에 의해 a 메소드가 실행되므로 결과가 aaaaa...bbbb 이런식으로 나타나버리게 된다.
아주 기초적인 부분이지만 synchronized 를 어디에다 걸어야 할지 헷갈릴 경우 참고가 되길 바란다.
'스킬(skills) > 자바(Java)' 카테고리의 다른 글
@SuppressWarnings 이란 (0) | 2014.08.13 |
---|---|
jxl.read.biff.BiffException: Unable to recognize OLE stream (0) | 2014.07.08 |
Launch4j 를 이용하여 java 파일을 실행파일(exe)로 만들기 (5) | 2014.05.08 |
JAVA로 현재 접속한 브라우져 정보 확인 방법 (0) | 2014.04.09 |
com.sun.mail.smtp.SMTPTransport.close 의 lock 현상 해결 방법 (0) | 2014.04.03 |