đ Coroutines & Flows āϏāĻšāĻ āĻাāώাā§ đ
đ Coroutines & Flows āϏāĻšāĻ āĻাāώাā§ đ
āĻ ্āϝাāύ্āĻĄ্āϰāϝ়েāĻĄ āĻ ্āϝাāĻĒে āϝāĻāύ āĻāĻŽāϰা āύেāĻāĻāϝ়াāϰ্āĻ āĻāϞ, āĻĄাāĻাāĻŦেāϏ āĻ āĻĒাāϰেāĻļāύ āĻŦা āĻ āύ্āϝ āĻোāύো āϏāĻŽā§āϏাāĻĒেāĻ্āώ āĻাāĻ āĻāϰি, āϤāĻāύ Coroutines āĻāĻŦং Flows āĻāĻŽাāĻĻেāϰ āĻীāĻŦāύ āϏāĻšāĻ āĻāϰে āĻĻেā§। đ§ đĄ
đĨ Coroutines: āϏāĻŽā§ āĻŦাঁāĻাāύোāϰ āĻাāĻĻু! đĒ
Coroutines āĻšāϞো lightweight threads, āϝা āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āĻাāĻ āĻāϰāϤে āĻĒাāϰে āĻিāύ্āϤু āĻŽেāĻāύ āĻĨ্āϰেāĻĄāĻে āĻŦ্āϞāĻ āĻāϰে āύা।
đ¯ Coroutines āĻেāύ āĻĻāϰāĻাāϰ?
āϧāϰো, āϤুāĻŽি āĻāĻāĻা āĻ ্āϝাāĻĒ āĻŦাāύাāϞে āϝেāĻাāύে āĻāĻāĻাāϰ āĻোāύো āϤāĻĨ্āϝ āϏাāϰ্āĻাāϰ āĻĨেāĻে āĻāύāĻŦে। āϝāĻĻি āϤুāĻŽি āĻāĻা āϏāϰাāϏāϰি āĻŽেāĻāύ āĻĨ্āϰেāĻĄে āĻāϰো, āϤাāĻšāϞে āĻ ্āϝাāĻĒ āĻĢ্āϰিāĻ āĻšā§ে āϝাāĻŦে! ❌
✅ Coroutines āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āĻাāĻ āĻāϰে, āĻিāύ্āϤু āĻāĻāĻাāϰ āĻāύ্āĻাāϰāĻĢেāϏ āϞ্āϝাāĻ āĻšā§ āύা।
đš Coroutine āĻাāϞাāύো āϏāĻšāĻ!
GlobalScope.launch {
delay(2000) // ⧍ āϏেāĻেāύ্āĻĄ āĻ
āĻĒেāĻ্āώা āĻāϰো
println("Coroutines Rocks! đ¸") // ⧍ āϏেāĻেāύ্āĻĄ āĻĒāϰে āĻĒ্āϰিāύ্āĻ āĻšāĻŦে
}
println("This runs first! đ")
đĄ āĻāĻāĻāĻĒুāĻ:
This runs first! đ
Coroutines Rocks! đ¸ (⧍ āϏেāĻেāύ্āĻĄ āĻĒāϰে)
➡️ āĻĻেāĻো, Coroutine āĻŽেāĻāύ āĻĨ্āϰেāĻĄ āĻŦ্āϞāĻ āύা āĻāϰেāĻ āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āĻাāĻ āĻāϰāϞো! đ
đ Flows: āĻāĻāĻŦাāϰে āĻāĻাāϧিāĻ āĻĄাāĻা āĻĒাāĻ াāύোāϰ āϝাāĻĻু! đĒ
āϧāϰো, āϤুāĻŽি āĻাāĻāĻো āĻāĻāĻাāϰāĻে āϞাāĻāĻ āĻāĻĒāĻĄেāĻ āĻĻিāϤে, āϝেāĻŽāύ:
- āϞাāĻāĻ āϏ্āĻোāϰ āĻāĻĒāĻĄেāĻ ⚽
- āϰিā§েāϞ-āĻাāĻāĻŽ āϏ্āĻāĻ āĻŽাāϰ্āĻেāĻ āĻĄাāĻা đ
- āϏাāϰ্āĻাāϰ āĻĨেāĻে āĻāĻāĻাāϰ āĻĒāϰ āĻāĻāĻা āĻĄাāĻা āĻĒাāĻ াāύো
āĻāĻাāύেāĻ āĻāϏে Flow!
đ¯ Flow āĻŽাāύে āĻি?
Flow āĻšāϞো āĻāĻāĻা data stream, āϝেāĻাāύে āĻāĻāĻŦাāϰে āĻāĻাāϧিāĻ āĻĄাāĻা āĻĒাāĻ াāύো āϝাā§। đ
đš Flow āĻীāĻাāĻŦে āĻাāĻ āĻāϰে?
fun myFlow(): Flow<Int> = flow {
for (i in 1..5) {
delay(1000) // āĻĒ্āϰāϤি ā§§ āϏেāĻেāύ্āĻĄে āĻĄাāĻা āĻĒাāĻ াāĻŦে
emit(i) // āĻĒাāĻ াāύো āĻšāĻ্āĻে āĻĄাāĻা
}
}
suspend fun main() {
myFlow().collect { value ->
println("Received: $value")
}
}
đĄ āĻāĻāĻāĻĒুāĻ:
Received: 1
Received: 2
Received: 3
Received: 4
Received: 5
✅ Flow āĻāĻāĻাāϰ āĻĒāϰ āĻāĻāĻা āĻĄাāĻা āĻĒাāĻ াā§, āĻāĻŽāύāĻি āĻāĻি āϞাāĻāĻ āĻĄাāĻাāϰ āĻāύ্āϝ āĻĒাāϰāĻĢেāĻ্āĻ! đ¯
đ Coroutine vs Flow đ
| đ Feature | đ Coroutine | đ Flow |
|---|---|---|
| āĻāĻāĻŦাāϰে āĻā§āĻা āĻĄাāĻা āĻĻেā§? | āĻāĻāĻŦাāϰে āĻāĻāĻাāĻ đ | āĻāĻāĻাāϰ āĻĒāϰ āĻāĻāĻা āĻĄাāĻা āϏ্āĻ্āϰিāĻŽ đ |
| āĻোāĻĨাā§ āĻŦ্āϝāĻŦāĻšাāϰ āĻšā§? | āύেāĻāĻā§াāϰ্āĻ āĻāϞ, āϞāĻŽ্āĻŦা āĻĒ্āϰāϏেāϏ ✅ | āϞাāĻāĻ āĻāĻĒāĻĄেāĻ, āϏ্āĻ্āϰিāĻŽিং ✅ |
| Delay/Wait āĻাāĻ āĻāϰে? | delay() ✅ |
emit() āĻĻিā§ে āϏ্āĻ্āϰিāĻŽ āĻĒাāĻ াāύো ✅ |
đ¯ Coroutine + Flow āĻāĻāϏাāĻĨে āĻŦ্āϝāĻŦāĻšাāϰ đ
fun fetchNumbers(): Flow<Int> = flow {
for (i in 1..3) {
delay(1000)
emit(i)
}
}
fun main() = runBlocking {
launch {
fetchNumbers().collect { value ->
println("Received: $value")
}
}
}
✅ āĻāĻাāύে Coroutine + Flow āĻŽিāϞে āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āϞাāĻāĻ āĻĄাāĻা āĻĒাāĻ াāĻ্āĻে! đĨ
đĨ āϏংāĻ্āώেāĻĒে:
✅ Coroutines: āĻŦ্āϝাāĻāĻ্āϰাāĻāύ্āĻĄে āĻাāĻ āĻāϰāϤে āĻĻেā§ đ
✅ Flow: āĻāĻāĻাāϰ āĻĒāϰ āĻāĻāĻা āĻĄাāĻা āĻĒাāĻ াā§ đ
✅ Coroutines + Flow: āĻĒাāϰāĻĢেāĻ্āĻ āĻāĻŽ্āĻŦো! đĒ
āĻāĻāύ, Coroutine & Flow āϤোāĻŽাāϰ āĻāύ্āϝ āĻāĻেāϰ āĻেā§ে āĻ āύেāĻ āϏāĻšāĻ āĻŽāύে āĻšāĻ্āĻে, āϤাāĻ āύা? đ đ
Comments
Post a Comment