티스토리 뷰
현재 진행중인 사이드 프로젝트에서 사용하는 WebFlux를 분석하면서 정리한 글입니다.
Disposable는 reactor.core 패키지 내에 있는 함수형 인터페이스입니다.
태스크 또는 리소스를 취소/폐기할 수 있음을 나타냅니다.
삭제 메서드에 대한 호출이 idempotent이거나 같아야 합니다.
void dispose();
기본 태스크 또는 리소스를 취소하거나 삭제합니다.
이 메서드를 idempotent로 만들려면 구현이 필요합니다.
default boolean isDisposed() {
return false;
}
리소스 또는 태스크가 삭제되면 선택적으로 true를 반환합니다.
처분을 추적하기 위해 구현이 필요한 것은 아니며, 따라서 처분되더라도 결코 true로 return되지 않을 수 있습니다.
그러나 리소스 또는 태스크가 삭제된다는 보장이 있는 경우에만 true를 반환해야 합니다.
Returns:
리소스 또는 태스크가 삭제된다는 보장이 있는 경우 true입니다.
interface Composite extends Disposable {}
Disposable 자신 스스로를 상속받는 Disposable 컨테이너입니다.
disposables을 축적하여 dispose()를 이용하여 한 번에 처리합니다.
add(Disposable) 메서드를 사용하면 컨테이너에 소유권을 부여하고, 컨테이너는 이제 이러한 컨테이너를 처분할 책임을 가집니다.
그러나 참조를 유지하고 해당 요소를 다시 처리할 책임이 있는 remove(Disposable)를 사용하면 개별 요소의 소유권을 되찾을 수 있습니다.
일단 폐기되면 컨테이너를 재사용할 수 없으며 Disposable.Composite가 필요합니다.
interface Swap extends Disposable, Supplier<Disposable> {}
내부 Disposable 컨테이너를 원자적으로 업데이트/교체하고 컨테이너 자체를 폐기할 수 있는 Disposable 컨테이너입니다.
'JAVA' 카테고리의 다른 글
java에서 멀티쓰레드 [2] Executors와 ExecutorService (0) | 2022.02.07 |
---|---|
java에서 멀티쓰레드 [1] Thread와 Runnable (0) | 2022.02.07 |
Consumer (0) | 2022.02.04 |
map vs flatMap in stream (0) | 2022.02.04 |
[면접] String, StringBuffer, StringBuilder 차이 ? (0) | 2020.10.06 |
- Total
- Today
- Yesterday
- 알고리즘
- JPA
- MSA
- 디자인패턴
- 정규표현식
- Spring Boot
- Olympiad
- 클린 코드
- 이펙티브 자바
- Algorithm
- Spring
- 프로그래머스
- 이팩티브 자바
- Kotlin
- AWS
- 테라폼
- kkoon9
- 코테
- Effective Java
- BOJ
- 객체지향
- 디자인 패턴
- C++
- 백준
- BAEKJOON
- kotest
- programmers
- Java
- node.js
- 클린 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |