Job - общий элемент структурированной конкурентности в Kotlin Coroutines. Cancel Job приводит к отмене всех его дочерних Job. Отмена дочернего Job отменяет родительский.
SupervisorJob - специальный тип Job. Отмена дочернего SupervisorJob не отменяет родительский и других дочерних Job. Полезен для изоляции ошибок выполнения отдельных корутин.
Сравнение:
| Признак | Job | SupervisorJob |
|---|---|---|
| Отмена дочернего | Отменяет родительский | Не отменяет родительский |
| Отмена родительского | Отменяет все дочерние Job | Отменяет все дочерние Job |
| Изоляция ошибок | Нет | Да |