Interview kitsBlog

Your dream job? Lets Git IT.
Interactive technical interview preparation platform designed for modern developers.

XGitHub

Platform

  • Categories

Resources

  • Blog
  • About the app
  • FAQ
  • Feedback

Legal

  • Privacy Policy
  • Terms of Service

© 2026 LetsGit.IT. All rights reserved.

LetsGit.IT/Categories/Kotlin
Kotlinhard

What is structured concurrency and why does it matter?

Tags
#structured-concurrency#cancellation#coroutines
Back to categoryPractice quiz

Answer

It means coroutines are tied to a scope, so their lifetime is bounded by the parent job. Cancellation and failures propagate in a controlled way, which prevents “leaking” background work (avoid `GlobalScope` in app code).

Advanced answer

Deep dive

Structured concurrency means: every coroutine has a parent scope/job, so its lifetime is bounded and observable.

What you get:

  • Cancellation propagates (cancel parent => cancel children).
  • Failures propagate predictably (one child failing can cancel siblings, unless you use `supervisorScope`).
  • No “orphan” background work leaking beyond lifecycle.

Practical guidance

  • Prefer `coroutineScope { ... }` / `supervisorScope { ... }`.
  • In apps, use lifecycle scopes (`viewModelScope`, `lifecycleScope`).
  • Avoid `GlobalScope` except for truly process-long tasks.

Common pitfalls

  • Launching work in a scope you don’t control.
  • Not handling cancellation (e.g., ignoring `isActive`).

Related questions

Kotlin
coroutineScope vs supervisorScope: how do they handle failures?
#kotlin#coroutines#supervisor
Kotlin
StateFlow vs SharedFlow: what’s the difference?
#kotlin#stateflow#sharedflow
Kotlin
Coroutine exceptions: how do they propagate and when to use `CoroutineExceptionHandler`?
#kotlin#coroutines#exceptions
Kotlin
Dispatchers in Kotlin coroutines: `Default` vs `IO` vs `Main`?
#kotlin#coroutines#dispatchers
Kotlin
Channel vs Flow - how are they different in coroutines?
#kotlin#coroutines#flow
Kotlin
Coroutine cancellation is cooperative — what does that mean in practice?
#coroutines#cancellation#isActive