runBlocking을 사용하는 경우가 있을까요?
안녕하세요, 좋은 강의 잘 듣고 있습니다.
runBlocking 설명하시면서, runBlocking은 자신의 코루틴이 모두 실행될 때까지 Thread를 Blocking 시킨다. 그래서 main 함수 최초 진입점이나, 테스트 코드 맨처음에 작성하는 것이 좋다. 라고 말씀해 주셨습니다.
그런데 그럼 테스트 코드 전체 또는 main 함수 전체를 코루틴으로 작성할 경우에만 사용이 되는 걸까요? 테스트 코드 이외에는 실제 로직에서 어떤 경우에 사용이 될지 궁금합니다.
아직 강의 초반부라서 이해가 부족한 것인가 싶기도 하지만 실시간으로 궁금해서 여쭤봅니다.
回答 1
1
안녕하세요 응애님!! 좋은 질문감사합니다! 🙂
제 개인적인 경험으로는 테스트 코드 혹은 main 함수에서 코루틴을 사용할 경우, 루틴 세계와 코루틴 세계를 이어주는 최초 진입지점으로 주로 사용했습니다. 즉, 로직 중간에 runBlocking 을 잘 사용하지는 않았어요!
만약 runBlocking 을 로직 중간에 사용하게 되면, 해당 thread 자체를 blocking 시키기 때문에 코루틴이 적극적으로 사용되는 non-blocking 코드에서는 치명적인 성능 저하를 가져올 수 있기 때문이죠.
물론 애당초 blocking 코드를 작성하고 있었다면, runBlocking 을 중간에 쓰는 경우도 간혹 있었습니다.
답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏
Dispatchers 별 차이점 관련 질문
0
93
1
코루틴과 가상 스레드의 차이가 궁금합니다.
1
310
2
Coroutine과 ThreadLocal관련 질문
0
154
2
선생님 강의를 듣고 크롤링에 코루틴을 적용해보고 있습니다. 그런데 코루틴이 하나만 나와서 동시처리가 안되는데 혹시 봐주실 수 있나요??
1
115
1
7강에 대해서 궁금증이 있는데요
1
116
2
Spring MVC에서 corountine 활용 방안
1
540
1
9강 코루틴 중단과 재개관련 문의 드립니다.
0
124
2
suspend 함수에 관해 추가적인 질문 있습니다! (runcatching, Result)
0
126
1
간단 질문.. join() vs delay()
0
158
2
코루틴을 잘 사용하고 있는지 궁금합니다.
0
196
1
CoroutineScope & Dispatcher 질문
0
161
2
async await 관련 질문
1
136
2
코루틴 실행 순서 궁금합니다.
1
232
2
corutine task에 대한 질문
1
195
2
completing의 존재의의가 궁금합니다.
1
161
1
코루틴 dispatcher IO관련 질문
0
187
1
Job 질문이 있습니다
1
203
1
스프링 MVC 환경에서의 코루틴
1
2096
1
자식1, 2와 부모코루틴의 관계
1
225
1
한 suspend fun 의 반환값이 다른 suspend fun의 파라미터로 쓰일 때
1
329
2
delay 함수에 대해 질문이 있습니다
1
394
1
delay가 없으면 실행 안 되는 이유
0
295
1
코루틴 스코프
0
313
1
CoroutineScope 와 withContext 의 차이를 잘 모르겠습니다.
1
701
1

