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 | 29 | 30 |
Tags
- 브론즈1
- 2레벨
- DB
- .github
- Activirty
- navigation component
- keystore
- 데이터베이스
- 성빈랜드
- 개발하는 정대리
- Bitrise
- github action
- Myungpyo Shim
- 피보나치 수 2
- 실버2
- Android
- capitalize
- 프로그래머스
- 최댓값 최솟값
- kotlin
- compose
- 실버 4
- 브론즈 1
- gradlew
- DB 기능
- LazyRow
- 데이터베이스 첫걸음
- LazyColumn
- suspend programming
- 백준
Archives
- Today
- Total
plzy의 개발 블로그
[Coroutine] suspend 를 왜 붙이는 걸까? 본문
Coroutine에서 suspend는 빠트릴 수 없는 중요한 키워드이다.
하지만 붙이는 경우가 있고 붙이지 않는 경우도 있다. ex) flow
어떠한 경우에 붙이고 어떤 역할을 하는지 알아보자.
suspend의 뜻
suspend를 구글 번역기를 돌려보면 중지하다 라는 뜻이 보일 것이다.
말 그대로 suspend를 붙인 함수는 중지할 수 있는 상태가 되는 것이다.
suspend의 기능
코 루틴은 일시 중단할 수 있다.
예를 들어 A 코 루틴과 B 코 루틴이 있다고 가정했을 때
A코 루틴에서 B의 코 루틴의 결괏값이 필요한 경우가 생길 수 있다.
이런 경우 A 코 루틴을 일시 중지 한 후 B의 결과값을 가져온 후 다시 A 코루틴을 실행한다.
이와 같은 경우가 callback 지옥을 해결해준다!
suspend 내부 동작
suspend를 붙이면 콜백을 없애주는 줄 알았지만, 그것은 틀렸다.
컴파일 시 내부적으로 다시 콜백을 사용한다.
여러 개의 코 루틴을 사용할 경우
라벨을 붙여 처리할 작업을 나누고
라벨을 통해 지시한다.
이러한 활동을 State Machine라고 한다.
결론
suspend를 붙이는 이유 : 정지 함수로 만들기 위해서다.
레퍼런스
'Android' 카테고리의 다른 글
[Coroutine] 기초를 알아보자. (1) (0) | 2022.07.07 |
---|---|
[Compose] compose로 splash 만들기 (0) | 2022.06.22 |
LiveData 대신 Flow가 나온 이유? (0) | 2022.06.22 |
[Android] 코루틴이란 무엇인가. (0) | 2022.05.17 |
[Compose] compose에서 RecyclerView를 쓰는법 (0) | 2022.05.16 |