목록Programming/JAVA (25)
프로그래밍 공부
Java에서 Future 인터페이스는 비동기 작업의 결과를 나타내는 객체이다. Future를 사용하면 실행 중인 작업의 상태를 확인하고, 작업이 완료되면 결과를 가져올 수 있다.다음은 Future 타입에 대한 주요 내용이다.1. 주요 메서드Future 인터페이스에는 다음과 같은 주요 메서드가 있다:boolean cancel(boolean mayInterruptIfRunning)작업을 취소합니다.mayInterruptIfRunning이 true인 경우, 현재 실행 중인 작업을 중단할 수 있다.boolean isCancelled()작업이 취소되었는지 여부를 반환한다.boolean isDone()작업이 완료되었는지 여부를 반환한다.V get() throws InterruptedException, Executi..
Callable 인터페이스는 Java에서 멀티스레딩 프로그래밍을 위한 기능 중 하나로스레드가 수행할 수 있는 작업을 정의.Runnable 인터페이스와 유사하지만, Callable은 다음과 같은 중요한 차이점이 있다:반환 값: Callable의 call() 메서드는 작업의 결과를 반환할 수 있다.반면 Runnable의 run() 메서드는 반환 값이 없다.예외 처리: Callable의 call() 메서드는 Exception을 던질 수 있다.반면 Runnable의 run() 메서드는 체크 예외를 던질 수 없다.1. Callable 인터페이스 사용법Callable 인터페이스를 사용하려면, 다음과 같은 단계를 따른다:Callable 인터페이스를 구현하는 클래스를 작성.call() 메서드에서 원하는 작업을 수행하고..
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): 가장 높은 우선순위.우선순위 설정 방법스레드의 우..