동기화 (3) 썸네일형 리스트형 면접에서 진짜 자주 나오는 자바 질문 - 섹션 3. 자바 동시성 및 멀티스레딩 1. 자바에서 스레드(Thread)를 생성하는 방법과 차이점자바에서 스레드를 생성하는 방법은 대표적으로 3가지가 있다:Thread 클래스 상속Runnable 인터페이스 구현ExecutorService 또는 Callable을 이용한 Thread Pool 방식// 1. Thread 상속class MyThread extends Thread { public void run() { System.out.println("Thread 실행!"); }}// 2. Runnable 구현class MyRunnable implements Runnable { public void run() { System.out.println("Runnable 실행!"); }}// 3. Execut.. JAVA 데드락(Deadlock)과 이를 방지하는 방법 (교착상태) 데드락(교착 상태)란?데드락(Deadlock)은 둘 이상의 스레드가 서로가 점유한 자원을 기다리며 무한히 대기하게 되는 상태를 말한다. 한국어로는 일반적으로 "교착 상태"라고 하며, 다중 스레드 환경에서 자주 발생할 수 있는 대표적인 병목 현상 중 하나이다.1. 데드락 발생 조건 (Coffman Conditions)데드락은 다음 네 가지 조건이 모두 충족될 때 발생한다:상호 배제 (Mutual Exclusion): 자원은 한 번에 하나의 스레드만 사용할 수 있다.점유 및 대기 (Hold and Wait): 자원을 점유한 상태에서 다른 자원을 기다린다.비선점 (No Preemption): 자원을 강제로 회수할 수 없다.순환 대기 (Circular Wait): 스레드들이 자원을 서로 기다리며 원형 대기를 형.. JAVA synchronized 키워드와 ReentrantLock의 차이점 (멀티스레딩) Java에서 멀티스레딩을 구현할 때 동기화(synchronization)는 필수적인 요소다. 대표적으로 사용하는 두 가지 방법이 있는데, 바로 synchronized 키워드와 ReentrantLock 클래스다. 이 두 방식은 동시성 제어를 위한 도구라는 공통점이 있지만, 사용 방법과 특징에서 많은 차이를 가진다. 이 문서에서는 두 방식의 차이점을 명확하게 비교하고 실전에서의 활용 방식을 알아보자.* 동기화(Synchronization)란?멀티스레드 환경에서는 여러 스레드가 동시에 공유 자원에 접근할 수 있기 때문에, 데이터 일관성과 안정성을 확보하기 위해 동기화가 필요하다. 동기화를 통해 한 번에 하나의 스레드만 특정 코드 블록을 실행할 수 있도록 제어할 수 있다.1. synchronized 키워드syn.. 이전 1 다음