Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 작업명중복
- 세션기반 인증
- 스프링
- ./gr
- 스프링 부트 테스트
- spring
- ./gradlew docker
- MSA
- 로그인 인증 흐름
- @temproal
- 스프링부트
- 어노테이션
- 프레젠테이션 계층
- IPC
- 토큰기반 인증
- 스프링부트 구조
- ORM
- 스프링부트 계층구조
- JWT
- Java
- java I/O
- formmatted
- JPA
- 퍼시스턴스 계층
- http
- 비즈니스 계층
- RESTfull API
- 비동기
- 동기
- 로그인/로그아웃
Archives
- Today
- Total
[DEV] J-Jay
Blocking vs Non-Blocking 본문
728x90
Blocking
Caller는 Callee가 완료될떄까지 대기한다.
제어권을 Callee가 가지고 있다.
Caller와 다른 별도의 Thread가 필요하지 않다(혹은 Thread를 추가로 쓸수도 있다)
A: Caller는 getResult가 결과를 돌려 주기 전까지 아무것도 할 수 없다.(동기 - Blocking)
B: Caller는 getResult가 결과를 구하고 callback을 실행하기 전까지 아무것도 할 수 없다. (비동기 - Blocking)
→ Caller는 getReulst가 완료 될 때까지 대기한다. (Blocking)
→ Caller를 호출한 후, Callee가 완료되기 전까지 caller는 아무것도 할수 없으며, 제어권을 Callee가 가지고 있다.
Non-Blocking
Calleer는 Callee를 기다리지 않고 본인의 일을 한다.
제어권을 Caller가 가지고 있다.
Caller와 다른 별도의 Thread가 필요하다.
A: Caller는 getResult가 결과를 돌려 주기 전까지 아무것도 할 수 없다. (동기 - Blocking)
C: getResult 호출한 후, getResult가 완료되지 않더라도 Caller는 본인의 일을 한다. (동기 - Non-Blocking)
D: getResult를 호출환 후, getResult가 완료되지 않더라도 Caller는 본인의 일을 할 수 있으며,
Caller는 Callee(getResult)의 결과에 관심이 없다.(비동기-Non-Blocking)
'Back-end > MSA' 카테고리의 다른 글
MSA 분해로 인해 생긴 문제 해결 방법 (0) | 2024.04.25 |
---|---|
MSA 분해로 생긴 문제들 (1) | 2024.04.25 |
ExecutorService (0) | 2024.03.04 |
Future (0) | 2024.03.04 |
동기와 비동기 (0) | 2023.05.14 |