자바 스레드 동기화: 심층 다이빙 (자바, 멀티스레딩, 동기화, synchronized, Lock, Condition, 경쟁 조건, 임계 영역, wait, notify)왜 자바 스레드 동기화가 필요한가요?자바와 같은 멀티스레딩 환경에서는 여러 스레드가 동시에 실행되면서 공유 자원에 접근하게 됩니다. 이때, 여러 스레드가 동시에 공유 자원을 변경하려고 하면 예상치 못한 결과가 발생할 수 있는데, 이를 경쟁 조건이라고 합니다.예를 들어, 두 개의 스레드가 같은 계좌의 잔액을 동시에 증가시키려고 한다고 가정해 봅시다. 각 스레드는 잔액을 읽고, 100을 더한 후, 새로운 잔액을 저장하는 작업을 수행합니다. 하지만 두 스레드가 동시에 잔액을 읽으면, 두 스레드 모두 같은 값을 읽을 수 있습니다. 그리고 각 스레..