전체 글 54

[Java] Main Thread(메인 스레드)와 Worker Thread(작업 스레드) 그리고 Daemon Thread(데몬 스레드)

JVM의 스레드 구조 JVM에서의 스레드 구조는 크게 메인 스레드(Main Thread)와 워커 스레드(Worker Thread) 그리고 데몬 스레드(Daemon thread)로 나누어진다. 스레드의 종류 Main Thread (메인 스레드) 자바의 엔트리포인트는 main메소드이다. 즉 자바가 실행되면 무조건 먼저 실행되는 부분은 main메소드이며 이를 실행하는 스레드의 이름은 main thread이다. public class App{ public static void main(String[] args){ String name = Thread.currentThread().getName(); //실행중인 스레드 이름, main thread } } 워커스레드(worker thread) 자바를 멀티스레드 환경..

[Java] Runnable 인터페이스와 Thread 클래스

목차 1. Runnable 인터페이스 2. Thread 클래스 3. 시스템 로드에 따른 JVM의 자동 스레드 관리 자바는 기본적으로 싱글스레드 환경으로 실행된다. 메인 메서드(main method)가 포함된 클래스의 main 스레드가 실행되며, 이는 싱글스레드에서 코드를 순차적으로 실행한다. 만약 멀티 스레드 환경으로 실행하고 싶은 경우 Runnable 인터페이스나 Thread 클래스를 사용한다. 하지만 일부 자바 라이브러리 및 프레임워크 내부에서는 자동으로 멀티스레딩을 사용하여 작업을 실행하기도 한다(Stream API , 스프링 etc) 1.Runnable 인터페이스 The Runnable interface should be implemented by any class whose instances a..

[Java] 스레드의 생명주기(Thread lifecycle, Runnable/Running의 차이점 )

목차 1.스레드 생명주기(Thread lifecycle) 2.Runnable/Running 의 차이점 1. 스레드 생명주기(Thread lifecycle) 스레드는 New, Active(Runnable/Running),Blocked/Waiting,Terminated 의 단계로 구성되어있다. New Thread 인스턴스만 부른 상태이며 아직 스레드를 사용하지 않은 상태 (start() 메소드를 사용하기 전의 상태) Active(Runnable/Running) 실행 가능하거나 실행중인 상태 (start()메소드를 부른 상태) Blocked/Waiting 일시 정지된 스레드 상태( join(),sleep(),wait() 메소드를 사용한 상태 ) 참고로 CPU에서는 waiting 상태의 스레드를 실행시키지 않으..

[Java] 프로세스와 스레드 비교(프로세스/스레드, 싱글/멀티 스레드)

목차 1. 프로세스(Process)와 스레드(Thread) 2. 싱글스레드의 프로세스 3. 멀티스레드의 프로세스 싱글스레드(Single Thread)와 멀티 스레드(Multi Thread)의 차이점을 이해하기 위해서는 프로세스와 스레드의 기본적인 개념부터 이해하고 있어야한다. 따라서 '1.프로세스(Process)와 스레드(Thread)'에 기본 개념을 간단하게 정리해두었다. 스레드에 따른 프로세스의 차이를 정리했다. 1. 프로세스(Process)와 스레드(Thread) 1. 프로세스(Process) : 프로세스는 쉽게 말하면 '컴퓨터에서 실행되고 있는 모든 프로그램'들을 말한다. 다른 말로 '실행 인스턴스'라고도 할 수 있으며, 더 정확한 용어로는 '실행 인스턴스를 나타내는 독립적인 단위'를 의미한다. ..