목록Programming (56)
프로그래밍 공부
Java의 ExecutorService 인터페이스는 멀티스레딩 작업을 효율적으로 처리할 수 있는 다양한 메서드를 제공한다1. submit() 메서드submit() 메서드는 단일 Callable 작업 또는 Runnable 작업을 제출하고작업이 완료된 후 결과를 받을 수 있는 Future 객체를 반환.사용법 및 특징Callable 또는 Runnable 작업을 제출.작업의 결과를 나타내는 Future 객체를 반환.Runnable 작업을 제출할 경우 Future.get() 메서드는 null을 반환.예제 코드import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.Exec..
Java의 Executor 서비스는 멀티스레딩을 관리하고, 스레드 풀을 생성하여 작업을 실행하는 간편한 방법을 제공. Executor 프레임워크는 스레드를 직접 생성하고 관리하는 대신, 스레드를 재사용할 수 있는 방식으로 효율적인작업 처리를 가능하게 한다. 이로 인해 코드가 간결해지고, 성능이 향상된다.1. Executor 프레임워크 개요Java의 Executor 프레임워크는 다음과 같은 구성 요소로 이루어져 있다:Executor 인터페이스: 기본적인 작업 실행 메서드를 정의. (execute(Runnable command))ExecutorService 인터페이스: Executor의 하위 인터페이스로종료 및 작업 제출과 같은 추가 기능을 제공. (submit(), shutdown(), invokeAll(..
자바의 스레드 관련 메서드는 스레드를 생성, 실행, 대기, 종료 및 제어하는 데 사용된다.아래는 자바에서 스레드와 관련된 주요 메서드들이다.1. 스레드 생성 및 실행 관련 메서드start()스레드를 시작하고 run() 메서드를 호출.스레드는 새 스레드에서 실행.사용 예시: Thread t = new Thread(() -> { System.out.println("스레드 실행 중"); }); t.start();run()스레드가 시작될 때 호출되는 메서드.Thread 클래스를 상속하거나 Runnable 인터페이스를 구현하여 재정의할 수 있다.사용 예시: public void run() { System.out.println("스레드 실행 중"); }2. 스레드 상태 관련 메서드slee..
자바에서 스레드의 우선순위(Priority)는 스레드가 CPU를 얼마나 자주 할당받을지를 결정하는 중요한 요소이다.각 스레드는 1부터 10까지의 우선순위를 가지며, 이 값은 Thread 클래스의 상수로 정의되어 있다.우선순위는 운영체제가 스레드 스케줄링을 결정하는 데 영향을 줄 수 있지만, 자바는 우선순위의 정확한 동작을보장하지 않는다. 쉽게 설명하면 우선순위를 추천을 한다고 ****생각하면 좋을것 같다. 스레드 우선순위의 상수Thread.MIN_PRIORITY (1): 가장 낮은 우선순위.Thread.NORM_PRIORITY (5): 기본 우선순위. 새로 생성된 스레드는 이 우선순위를 가진다(Default).Thread.MAX_PRIORITY (10): 가장 높은 우선순위.우선순위 설정 방법스레드의 우..
자바 스레드는 여러 상태(state)를 가지며, 각 상태는 스레드가 실행 중이거나 실행을 기다리는다양한 단계를 나타낸다.자바 스레드의 상태는 Thread.State 열거형(Enum)으로 정의되어 있으며총 6가지 주요 상태가 있다:NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.아래는 각 상태에 대한 설명이다.1. NEW (새로운 상태)설명: 스레드 객체가 생성되었지만 아직 start() 메서드가 호출되지 않은 상태.이때는 스레드가 시작되지 않았으며, 작업을 수행하지 않고 있음상태 진입 시점: 스레드가 처음 생성되었을 때. Thread t = new Thread(); // 상태: NEW2. RUNNABLE (실행 가능한 상태)설명: 스레드가 실행..
Runnable 인터페이스를 사용하는 이유는 주로 다중 상속의 유연함과 객체 지향적인 설계를 위해 사용한다.자바는 다중 상속을 지원하지 않기 때문에, 이미 다른 클래스를 상속받은 클래스가 동시에 스레드 기능을 가지려면 Runnable 인터페이스를 사용해야 한다.주요 이유:다중 상속의 제약 해결:자바에서는 단일 상속만 가능하므로, 클래스가 이미 다른 클래스를 상속받고 있을 때 Thread 클래스를 상속받는 것이 불가능하다.Runnable 인터페이스는 다중 상속을 대신할 수 있다. 즉, 이미 클래스를 상속받고 있는 상태에서도 Runnable을 구현하여 스레드 기능을 사용할 수 있는 것 이다.예를 들어, 클래스가 이미 Car 클래스를 상속받고 있다면 Thread 클래스를 상속받을 수 없다.하지만 Runnabl..