Dispatchers.Main
- это CoroutineContext, который отправляет сопрограмму в основной поток, но когда сама сопрограмма приостанавливается, то есть путем изменения контекста или потока или по какой-либо другой причине, тогда «основной поток становится свободным» и Continuation
объект под капотом отвечает за продолжение выполнения после этого.
Поскольку нет задачи, выполняющейся в главном потоке после приостановки, он свободен и может выполнять другую задачу в контексте (диспетчер), и, следовательно, задокументировано как не заблокировано.