Why does viewModelScope.launch run on the main thread by default Why does viewModelScope.launch run on the main thread by default multithreading multithreading