인스턴스 동기화와 클래스 동기화의 잠금 범위 분석

Java의 synchronized 키워드는 잠금 대상에 따라 동작 방식이 완전히 달라진다. 인스턴스 메서드와 정적 메서드에 각각 적용했을 때 어떤 차이가 있는지 살펴본다. 잠금 대상의 핵심 차이 다음 클래스를 통해 두 가지 동기화 방식을 비교한다: public class Resource { // 인스턴스 잠금 - 각 객체마다 별도의 락 public synchronized void instanceLockA() {} ...

7월 10일 16:26에 게시됨

자바의 고급 개념: 스레드

왜 스레드가 필요한가? 컴퓨터의 기본 구성 요소인 입력/출력 장치, 계산기, 저장 장치, 제어 장치 간 성능 차이를 해결하기 위해 하드웨어와 소프트웨어에서 다양한 기술이 도입되었습니다. CPU는 캐시를 추가해 메모리 접근 속도를 조절하고, 운영체제는 프로세스와 스레드를 통해 CPU 자원을 분할 처리하며, 컴파일러는 명령어 실행 순서를 최적화하여 성능 향상을 추구 ...

6월 15일 02:05에 게시됨

자바 싱글톤 패턴의 안전성과 리플렉션 공격 대응 방안

싱글톤 패턴의 기본 형태 싱글톤 패턴은 애플리케이션 전반에 걸쳐 단일 인스턴스만 존재하도록 보장하는 디자인 패턴이다. 가장 간단한 구현 방식부터 시작해보자. 즉시 초기화 (Eager Initialization) public class EagerSingleton { private static final EagerSingleton INSTANCE = new EagerSingleton(); private EagerSingleton() {} public static ...

6월 7일 19:32에 게시됨