inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부

Sinks 와 thread-safe

234

corea1836

작성한 질문수 1

0

안녕하세요.

강의 중 Sinks가 thread-safe 하다는 이야기가 잘 이해가 안 가서 질문 드립니다.

혹시 예시를 들어 설명해주실 수 있나요?

구글링 해봐도 어떤 원리로 therad-safe 한지 이해가 안 가서요.

java spring project-reactor webflux

답변 1

0

Kevin

안녕하세요?

Sinks의 tread-safe 하다는 부분에 대해서 질문을 주셨네요.

먼저 아래 코드는 공식 문서에 나오는 Sinks 내용 중 일부인데요.

image쓰레드가 동시 접근하는 상황이 발생했을 때 쓰레드 중에서 동시 접근하는 쓰레드 중 하나를 빠르게 실패하게 함으로써 쓰레드 안전성을 보장한다라고 나와있습니다.

 

그리고 아래는 Sinks 내부 코드 중 일부인데요.

image- 먼저 (1)에서 쓰레드 관련된 문제 등을 포함해서 데이터를 emit할 때 발생할 수 있는 문제에 대해서 체크한 후, 데이터를 emit합니다. 만약에 어떤 문제가 감지되면,

- (2)에서 EmitFailureHandler가 빠르게 emit을 실패시킵니다. 디폴트는 즉시 실패를 시키지만 EmiFaiureHandler 함수형 인터페이스를 구현할 때 더 시도할지 말지 여부를 지정할 수 있습니다.

- 그리고 (3)에서 emit이 실패한 부분에 대해서 후처리를 하고 있습니다.

 

질문에 대한 답변이 되셨길 바랄게요.

subscription signal 에 upstream 으로 이동하는 순서

0

90

2

Webflux의 Non-Blocking 특성에 대해 문의 드립니다.

1

213

3

Downstream Mono, Flux가 subscriber인가요?

0

160

1

source.next와 source.emit의 차이에 대한 질문입니다.

0

214

2

StepVerifier를 이용한 Testing (1) - expectNoEvent 에 관해서

2

233

1

backpressure latest 전략

0

243

2

StepVerifier를 이용한 Testing (1) 의 StepVerifiter 질문

0

231

1

[Scheduler의 종류 강의] Schedulers.newParallel 메서드에 관한 질문

0

209

2

Backpressure Drop 전략에서 다시 버퍼가 채워지는 시점에 대한 질문입니다.

0

167

2

Reactor 3부의 오픈 일정에 관해서 문의드립니다!

0

173

1

inner sequence context 관련 질문

0

139

1

boundedElastic 관련 질문

1

323

1

강의자료 관련 질문드립니다.

0

250

3

newBoundedElastic 에서 queue 에 쌓이는 룰

0

215

2

import com.itvillage.utils.Logger;

0

149

1

Interceptor에서 reactor Context 유지하는 방법

0

283

2

예시코드는 webflux의 이점보단 webclient의 이점 아닌가요?

3

361

1

advancedTimeBy와 thenAwait 사용 예시가 궁금합니다

0

205

1

context의 read, write의 실행 순서

0

263

2

DROP 전략과 LATEST 전략의 차이점이 무엇인가요?

3

637

3

백프레셔 전략 관련해서

1

309

1

Backpressure Example 코드 질문드립니다

0

259

2

Backpressure 전략

0

308

2

Flux 와 Mono

0

465

1