• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Sinks 와 thread-safe

24.02.01 08:24 작성 조회수 99

0

안녕하세요.

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

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

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

답변 1

답변을 작성해보세요.

0

안녕하세요?

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

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

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

 

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

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

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

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

 

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