작성
·
139
·
수정됨
0
위 도표를 보여주시면서 설명을 해주실때,
10시 정각에 스레드 1이 쿠폰 발급 로직을 시작
10시 2분에 완료가 된다면,
스레드 2는 스레드 1의 작업이 모두 종료될때까지 기다렸다림.
스레드 2는 10시 2분에 작업을 시작
이렇게 설명해주셨는데, 이게 잘 이해가 안됩니다...
제 생각에는 아래와 같이 10시에 동시에 처리되는 흐름이 되어야 할 것 같은데요...
즉, 스레드2는 쿠폰 생성 로직이 끝날 때까지 기다리지 않고,
스레드 1이 쿠폰 발급 로직을 수행 중이라도 스레드 2는 곧바로 Redis 값을 받고 독립적으로 로직을 수행할 수 있을 것 같은데 아닌가요??
레디스 자체는 싱슬스레드이니 레디스를 찌를때는 무조건 하나씩만 들어가겠지만 스레드 1은 레디스에 찌르고 값을 받아온 후 본인의 비즈니스 로직 수행할때 스레드2가 레디스 서버에 찌를 수는 없는건가요?
제가 이렇게 이해한 부분이 잘못된 것인지, 아니면 제가 강의 설명을 오해한 것인지 혼란스러워 질문을 드리게 되었습니다.
답변 1
1
한지찬님 안녕하세요. 답변이 늦어져서 죄송합니다.
제가 강의에서 말씀드린 부분은 redis 에 한정지어서 말씀을 드린것이었습니다!
그래서 말씀하신대로 redis 는 싱글스레드라 1개씩 처리를 하고, A 스레드에서 레디스의 연산을 마무리하고 본인의 비즈니스로직을 처리하는중에는 B 레디스가 레디스에 접근을 할 수 있습니다!
감사합니다.