본문 바로가기

server9

Java Thread 중단과 제어: Sleep, interrupt, Yield 이해하기 Java에서 멀티스레딩을 사용하다 보면, 스레드를 중단하고 제어하는 것이 자주 필요하다. 이를 위한 여러 가지 기법이 존재하지만, interruption(인터럽트)와 yield(양보)는 매우 중요한 개념이다. 본 포스팅에서는 이 두 개념을 중심으로 적용 예제를 통해 보다 깊이 이해해보자.주어진 시간동안 일시 정지하기 위한 sleep 실행 중인 스레드를 일정 시간 멈추게 하고 싶다면 Thread 클래스의 sleep() 메소드를 사용하면 된다. Thread.sleep()메소드를 호출한 스레드는 주어진 시간 동안 일시 정지 상태가 되고, 다시 실행 대기 상태로 돌아간다.try{ Thread.sleep(1000);}catch(InterruptedException e){ e.printStackTrace.. 2025. 2. 20.
Java 에서 스레드와 생명 주기 정리 Java에서 스레드는 멀티스레딩 프로그래밍의 기본 단위로, 스레드의 상태와 생명 주기를 이해하는 것은 효율적인 프로그래밍을 위한 기초가 된다. 이 포스트에서는 이에 대한 이해를 위해 스레드의 생명 주기, 상태, 예외 처리, 그리고 join() 메서드의 사용에 대해 정리해보려고 한다.스레드 기본 정보스레드 ID: 각 스레드는 고유한 식별자인 ID를 가짐스레드 이름: 스레드는 이름을 가질 수 있으며, 중복 가능우선순위: 1부터 10까지의 값으로 설정되며 기본값은 5!!  실제 우선순위는 JVM 구현 및 운영체제에 의해 결정 됨스레드 그룹: 스레드는 부모 스레드와 동일한 그룹에 속하며, 그룹화하여 관리할 수 있음스레드 상태: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING,.. 2025. 2. 10.
Java Thread & Runnable 정리 Java에서 스레드를 사용하는 것은 멀티태스킹을 구현하는 중요한 방법이다. 이전 포스팅에 이어서 이번에는 Java 에서 스레드를 활용하는 아주 기본적인 방법을 공유해보고자 한다. Thread 스택 영역  OS의 원리와 유사하게, 프로세스는 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 구성된다. 이때 각 프로세스의 스레드는 자신만의 스택 영역을 가지며, 힙, 데이터, 코드 영역은 공유하여 사용한다. 자바 또한 JVM 아래에서 이러한 구조를 유지하며, 각각의 스레드는 독립적인 스택 영역을 갖는다. Java 에서 Thread 클래스public class HelloThread extends Thread { @Override public void run() { System.out.p.. 2025. 2. 7.
Java 에서 중첩 클래스 Java에서는 중첩 클래스(Nested Class)를 사용하여 클래스 간의 관계를 유의미하게(?) 구축할 수 있다. 중첩 클래스는 여러 종류가 있으며, 각 종류에 따라 사용성과 특징이 다르다. 이번 포스팅에서는 중첩 클래스의 종류와 각 클래스의 특성을 살펴보겠다. 주니어 때 정확히 몰랐던 개념이다.중첩 클래스의 종류먼저 종류를 정리하면 아래와 같다.정적 중첩 클래스 (Static Nested Class)내부 클래스 (Inner Class)지역 클래스 (Local Class)익명 클래스 (Anonymous Class)1. 정적 중첩 클래스 (Static Nested Class) 정적 중첩 클래스는 외부 클래스의 인스턴스와 독립적으로 존재하며, 외부 클래스의 static 멤버에만 접근할 수 있다. 아래 예제.. 2025. 2. 3.
Java 에서 Time 정리 서버 개발을 하다보면 날짜와 시간이 필요한 경우가 많다. 개념은 쉽지만 코드레벨에서는 이해를 정확히 하지 못해 날짜와 시간을 다루는 것은 생각보다 복잡할 수 있다. 대표적으로 복잡한 사례는 (1) 여러 가지 조건(윤년, 썸머타임 등), (2) Token 만료 기한 확인 등이 있다. 실제로 이 로직을 오류를 낸 경험이 있다. 이러한 복잡한 상황을 처리하기 위해 자바의 java.time 패키지와 같은 시간 라이브러리를 사용해야 한다. 오늘은 Time 에 대해서 개념을 이해하기 위한 아주아주 기초 지식을 정리해보고자 한다. 타임존 타임존은 UTC(협정 세계시)를 기준으로 변환되는 시간을 나타낸다. 예를 들어, 한국의 타임존은 Asia/Seoul로, 이는 UTC 기준으로 +09:00이다. 타임존을 통해 각 지역.. 2025. 2. 3.
Java 에서 Enum 자바에서 Enum(열거형)은 특정 값의 집합을 정의할 수 있는 강력한 기능이다. Enum을 이해하기 위해서는 타입 안정성에 대한 개념이 필수적이다. 이번 포스팅을 통해 Enum 의 특징과 활용하는 방법에 대해서 이해해볼 수 있기를 기대한다.타입 안정성을 위한 Enum 아래와 같은 DiscuntService 클래스에서 할인율이 다르게 적용되는 여러 등급을 문자열로 정의하고 있다. 하지만 문자열을 비교하는 방식은 대소문자 오류 혹은 오타로 인해 예기치 않은 문제가 발생할 수 있다.package ex0;public class DiscountService { public int discount(String grade, int price) { int discountPercent = 0; .. 2025. 2. 2.
반응형