[JAVA] 자바 synchronized 를 바이트코드로 까보며 이해하기
·
Language/Java
자바에서 synchronized는 모니터 락을 잡는다 정도로 보통 설명하지만, 실제로 JVM 바이트코드 레벨에서는 어떻게 구현되는지 궁금해졌다. 간단한 Account 예제를 작성해서 javap -c -v로 디스어셈블하고, synchronized 블록과 메서드가 어떤 바이트코드로 바뀌는지 직접 확인해 보았다.1. 예제 코드와 디스어셈블 결과이번에 사용한 예제 바이트코드는 대략 다음과 같다.public class Account minor version: 0 major version: 65 flags: (0x0021) ACC_PUBLIC, ACC_SUPER this_class: #8 // Account super_class: #2 ..