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 | 31 |
Tags
- 최댓값 최솟값
- github action
- suspend programming
- .github
- Activirty
- 데이터베이스 첫걸음
- Android
- keystore
- LazyRow
- gradlew
- 실버2
- 브론즈 1
- compose
- 개발하는 정대리
- 브론즈1
- 프로그래머스
- 성빈랜드
- kotlin
- DB
- DB 기능
- LazyColumn
- 백준
- navigation component
- 실버 4
- Bitrise
- 피보나치 수 2
- capitalize
- 2레벨
- 데이터베이스
- Myungpyo Shim
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 |