если у нас в suspend функциях не будет переключения на Dispatcher.io, то при создании билдера с Dispatcher.Main, то эта suspend функция выполнится в мейн потоке верно? просто было подозрение как будто по дефолту suspend выполняется в другом потоке
Подозрение неправильное, для дочерних корутин будет взять диспетчер родительской, если не указано другое. При этом можно спокойно хоть в одном мэин диспетчере жить (но не нужно, конечно же) -- в каждом suspension point по сути будет выполнен internalUiThreadHandler.post(coroutineContinuation)
По дефолту корутины про потоки вообще ничего не знают. Надо где-нибудь жирными буквами написать coroutines != threads. При вызове suspend функции вообще как правило нет context switch. Он происходит обычно только в корутин билдерах.
Обсуждают сегодня