Диспетчер Unconfined
не связан ни с одной нитью.Практически во всех случаях сопрограмма возобновляется в потоке, где пользователи вызывают continuation.resume()
.
В конкретном случае, который вы показываете, вы вызываете стандартную функцию delay
, поэтому Kotlin должен внутренне обрабатывать как его приостановку, так и возобновление.Чтобы это произошло, он поддерживает запланированный пул потоков, в который он отправляет задачу возобновления, запланированную с указанной вами задержкой.
Диспетчер Unconfined
полезен только в специализированных сценариях, где вы пишете свою собственную инфраструктуру.и хочу контролировать поток, где возобновляется сопрограмма.По сути, он закорачивает весь диспетчерский механизм.