2024/11/11 3

[JAVA] Runnable 을 만드는 다양한 방법

Runnable을 만드는 다양한 방법 중첩 클래스를 사용하면 Runnable을 더 편리하게 만들 수 있다. 참고로 모두 결과는 같아. 정적 충첩 클래스 사용package thread.start;import static util.MyLogger.log;public class InnerRunnableMainV1 { // 특정 클래스만에서만 사용되는 경우 정적 중첩 클래스 사용 public static void main(String[] args) { log("main() start"); MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.sta..

JAVA 2024.11.11

[JAVA] 데몬 스레드

스레드는 사용자(user) 스레드와 데몬(daemon) 스레드 2가지 종류로 구분할 수있다.  사용자 스레드 (non-deamon 스레드)프로그램의 주요 작업을 수행한다.작업이 완료 될 때 까지 실행된다.모든 user 스레드가 종류되면 JVM 도 종료된다.  데몬 스레드 백그라운에서 보조적인 작업을 수행한다.모든 user 스레드가 종류되면  데몬 스레드는 자동으로 종료된다. jvm 은 데몬 스레드의 실행 완료를 기다리지 않고 종료된다. 데몬 스레드가 아닌 모든 스레드가 종류되면, 자바 프로그램도 종료된다. 용어 - 데몬 : 그리스 신화에서 데몬은 신과 인간 사이의 중간적 존재로 , 보이지 않게 활동하며 일상적인 일들을 도왔다. 이런 의미로 컴퓨터 과학에서는 사용자에게 직접적으로 보이지않으면서 시스템의 백..

JAVA 2024.11.11

[JAVA] 스레드란? run() start() 의 차이

스레드란 무엇이면 왜 스레드 실행 시 run() 메서드가 아닌 start()를 호출하라고 하는 걸까?해당 내용을 알아보자. 자바 메모리 구조자바 메모리 영역은 크게 메서드, 스택, 힙 영역으로 나눠져 있다. 메서드 영역(Method Area) :  메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 프로그램의 모든 영역에서 공유한다.클래스 정보 : 클래스의 실행 코드 (바이트 코드). 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재한다.static 영역 : static 변수들을 보관한다.런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다.스택 영역 (Stack Area) : 자바 실행 시, 하나의 실행 스택이 생성된다. 각 스택 프레임..

JAVA 2024.11.11