Coroutine, Flow 질문
379
3 asked
안녕하세요. 강의 잘 듣고 있습니다!
아래 질문이랑 거의 비슷한 질문이긴한데 확실히 하고싶어 문의드립니다
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
fun main() = runBlocking<Unit> {
// Launch a concurrent coroutine to check if the main thread is blocked
launch {
for (k in 1..3) {
println("I'm not blocked $k")
delay(100)
}
}
// Collect the flow
simple().collect { value -> println(value) }
// println("test")
}
fun simple(): Flow<Int> = flow { // flow builder
for (i in 1..3) {
delay(100) // pretend we are doing something useful here
emit(i) // emit next value
}
}
runBlocking{} 내부에서 launch {} 로 코루틴이 생성
그다음 simple().collect{} 코드가 실행되는데 이것도 코루틴으로서 생성
launch 로 생성한 코루틴이 실행 ->
println("I'm not blocked $k")코드 출력flow 코루틴 실행-> collect 된 value 출력
3,4 반복
이해한게 맞을까요?
그리고 타이밍에 따라서 결과값이
1
I'm not blocked 1
2
I'm not blocked 2
3
I'm not blocked 3
이렇게 나올수도 있나요? 챗지피티는 타이밍 때문에 출력 순서가 바뀔수 있다고 해서요 ..
Answer 1
0
올려주신 코드를 실행시켜보시면 반환값은 다음과 같이 나오게 됩니다.
I'm not blocked 1
1
I'm not blocked 2
2
I'm not blocked 3
3
Transformations import 안됨
0
570
1
moshi관련 질문입니다.
0
539
2
searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.
0
352
1
안드로이드에서 아키텍처 패턴
0
403
1
RecyclerView.Adapter vs ListAdpater
0
459
1
Flows 와 Coroutine
1
554
1
[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문
0
357
1
코루틴 메모리 관련해서 질문드립니다!
0
441
1
Java Bill Pugh Solution 에서 INSTANCE
0
457
1
nested json에서 특정 부분만 파싱하는법
0
484
1
Fragment에서의 viewBinding
0
511
3
toolbar 질문드립니다.
0
402
2
EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?
2
559
1
코루틴 관련 질문
0
538
1
오류
1
488
2
강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?
1
737
1
EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?
1
342
1
서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?
1
519
1
GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?
1
1262
1
EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요
1
491
1
ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?
1
431
1
Room DB에 id 항목 추가
0
246
1
안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.
0
395
2
paging config pageSize 관련
0
421
1

