KOTLIN_LIB Telegram 625
Разница между job.cancel() и scope.cancel() в Kotlin Coroutines

В Kotlin-корутинах часто путают отмену конкретного Job и всей области видимости (Scope). Разберёмся.

Что такое Job и Scope?

- Job - отдельная корутина, возвращается при launch или async.
- CoroutineScope - контейнер для корутин. В нём есть общий Job, управляющий жизненным циклом всех корутин внутри.

job.cancel()

Отменяет только одну корутину.


val scope = CoroutineScope(Dispatchers.Default)

val jobA = scope.launch { delay(5000) }
val jobB = scope.launch { delay(10000) }

jobA.cancel() // Отменится только jobA, jobB продолжит работу


Scope остаётся активным и можно запускать новые задачи.

scope.cancel()

Отменяет все корутины в области видимости и сам scope.


scope.cancel() // Все корутины в scope будут остановлены


После этого новые корутины запустить уже нельзя.

https://medium.com/proandroiddev/kotlin-coroutines-the-real-difference-between-job-cancel-and-scope-cancel-05e1d9dd5245

✍️ @kotlin_lib
👍5



tgoop.com/kotlin_lib/625
Create:
Last Update:

Разница между job.cancel() и scope.cancel() в Kotlin Coroutines

В Kotlin-корутинах часто путают отмену конкретного Job и всей области видимости (Scope). Разберёмся.

Что такое Job и Scope?

- Job - отдельная корутина, возвращается при launch или async.
- CoroutineScope - контейнер для корутин. В нём есть общий Job, управляющий жизненным циклом всех корутин внутри.

job.cancel()

Отменяет только одну корутину.


val scope = CoroutineScope(Dispatchers.Default)

val jobA = scope.launch { delay(5000) }
val jobB = scope.launch { delay(10000) }

jobA.cancel() // Отменится только jobA, jobB продолжит работу


Scope остаётся активным и можно запускать новые задачи.

scope.cancel()

Отменяет все корутины в области видимости и сам scope.


scope.cancel() // Все корутины в scope будут остановлены


После этого новые корутины запустить уже нельзя.

https://medium.com/proandroiddev/kotlin-coroutines-the-real-difference-between-job-cancel-and-scope-cancel-05e1d9dd5245

✍️ @kotlin_lib

BY Kotlin




Share with your friend now:
tgoop.com/kotlin_lib/625

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. A vandalised bank during the 2019 protest. File photo: May James/HKFP. As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. The best encrypted messaging apps
from us


Telegram Kotlin
FROM American