thread 2

Thread, Future, CompletableFuture 란

Thread 스레드가 하나인 경우를 싱글 스레드, 하나 이상인 경우를 멀티 스레드라 부른다. 멀티 스레드를 사용하면 애플리케이션에서 여러개의 작업을 동시에 할 수 있다. 멀티 스레드를 사용하면 스케쥴링 알고리즘에 의해 스레드가 전환되면서 작업을 처리하는데 이를 컨텍스트 스위칭이라 부른다. 하나의 프로세스에는 최소 하나 이상의 스레드가 존재하고 프로세스 내에 스레드들은 동일한 메모리를 공유한다. 스레드가 무한정 많아지면 메모리 사용량이 높아져 OOME 가 발생할 수 있고 동시 처리량을 요구하는 시스템에서는 스레드를 생성하면서 발생하는 대기 시간 때문에 응답 지연이 발생한다. 이러한 문제를 해결하기 위해 스레드 풀을 사용해야 한다. 스레드 풀을 사용하면 애플리케이션 내에서 사용할 총 스레드 수를 제한할 수..

Spring/Webflux 2024.01.27

CompletableFuture (1) - 자바 Concurrent 프로그래밍 소개

CompletableFuture 을 학습하려면 이전까지의 Java Concurrent 프로그래밍을 알아야한다. Concurrent 소프트웨어 동시에 여러 작업을 할 수 있는 소프트웨어 ex) 웹 브라우저로 유튜브를 보면서 키보드로 문서에 타이핑을 할 수 있다. ex) 녹화를 하면서 인텔리J로 코딩을 하고 워드에 적어둔 문서를 보거나 수정할 수 있다. Java 에서 지원하는 Concurrent 프로그래밍 멀티 프로세싱 (ProcessBuilder) 멀티 쓰레드 이번 시간에는 멀티 쓰레드에 관한것만 보자. Java 멀티 쓰레드 프로그래밍 Thread / Runnable 아래는 쓰레드를 구현하는 두가지 방법이다. 1. Thread 를 상속받아 구현하는 방법 // Thread 상속 public static vo..