Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- http
- 스프링 부트 테스트
- 로그인 인증 흐름
- 동기
- 세션기반 인증
- IPC
- 스프링부트 계층구조
- 어노테이션
- formmatted
- JPA
- 비즈니스 계층
- 작업명중복
- 스프링부트 구조
- 프레젠테이션 계층
- 비동기
- JWT
- MSA
- 토큰기반 인증
- RESTfull API
- 로그인/로그아웃
- ./gradlew docker
- ORM
- spring
- 스프링부트
- 스프링
- 퍼시스턴스 계층
- ./gr
- @temproal
- java I/O
- Java
Archives
- Today
- Total
[DEV] J-Jay
ExecutorService 본문
728x90
ExecutorService
1. Thread Pool을 이용하여 비동기적으로 작업을 실행하고, 관리한다.
2. 별도의 Thread를 관리하지 않아도 되므로 코드가 간결하게 유지된다
3. Thread 풀을 이용하여 자원을 효율적으로 관리한다.
public interface ExecutorService extends Executor {
//Runnable 인터페이스를 구현한 작업을 Thread Pool에서 비동기적으로 실행
void execute(Runnable command);
/*
Callable 인터페이스를 구현한 작업을 Thread Pool에서 비동기적으로 실행,
해당 작업의 결과를 Future<T> 객체로 반환
*/
<T> Future<T> submit(Callable<T> task);
/*
ExecutorService를 종료 (더이상 Task를 받지 않음)
하지 않으면 무한정 대기 함
*/
void shutdown();
}
newSingleThreadExecutor
단일 쓰레드로 구성된 Thread Pool 을 생성하며 한번에 하나의 작업만 실행한다.
newFixedThreadPool
고정된 크기의 Thread Pool을 생성한다. 크기는 인자로 주어진 n과 동일하다
newCachedTreadPool
사용가능한 쓰레드가 없다면 새로 생성해서 작업을 처리하고, 있다면 재사용을 한다.
일정시간 동안 사용되지 않으면 회수한다.
(요청이 많이 들어올 경우 Thread Pool 개수가 계속해서 늘어나기 떄문에 예상 가능한 작업에 대해서만 사용 권장)
newWorkStealingPool
work steal 알고리즘을 사용하는 ForkJoinPool을 생성한다.
'Back-end > MSA' 카테고리의 다른 글
MSA 분해로 인해 생긴 문제 해결 방법 (0) | 2024.04.25 |
---|---|
MSA 분해로 생긴 문제들 (1) | 2024.04.25 |
Future (0) | 2024.03.04 |
Blocking vs Non-Blocking (1) | 2024.02.26 |
동기와 비동기 (0) | 2023.05.14 |