/practice-observer-pattern

practice pubsub model with java

Primary LanguageJava

practice-observer-pattern

practice pubsub model with java

목적

Thread Safe 상황을 유지하기 위해서 락을 이용합니다.

불행하게도, 락을 이용하면서 많은 문제가 생깁니다.

본 Repository는 여러가지의 락을 구현하면서, 일어날 수 있는 문제를 다룹니다.

그리고 문제들을 해결하는 방향으로 나아가면서 코드의 Version을 수정하는 과정을 포함합니다.

레포지토리 사용법

1가지의 상황을 설정하여, 여러가지 방법으로 구현을 할 예정입니다.

상황을 먼저 이해하고 여러가지 방법으로 구현된 내용을 살펴봅니다.

상황 이해하기

  • 서버가 존재합니다.

    • 서버에는 게시글 조회라는 서비스를 제공합니다.
    • 많은 유저가 게시글 조회를 요청합니다.
    • 서버는 유저에게 게시글을 응답합니다.
  • 게시글에는 조회수가 존재합니다.

    • 조회수는 유저가 요청할 때마다 1씩 증가합니다.
    • 같은 유저가 2번요청을 하여도 조회수는 증가합니다.
    • 조회수는 유저의 모든 요청을 올바르게 증가시켜야 합니다.

Basic

스핀락

뮤텍스

세마포어

분산락

Concurrent Queuing