1. Я не совсем понимаю, зачем в конструкторе указывать имя корутины, ведь потом у нее нельзя указать поток выполнения, можно только у launch, а имя корутины показывается просто в логах.
val scope1 = CoroutineScope(CoroutineName("MyCoroutine"))
//либо так
scope1.launch{}
//либо так
scope1.launch(Dispatchers.Main){}
2. В чем разница, если я указываю в конструкторе корутины Dispatchers.Main или в конструкторе лаунчера?
val scope2 = CoroutineScope(Dispatchers.Main)
//либо так
scope2.launch{}
//либо так
scope2.launch(Dispatchers.Main){}
3. В чем разница CoroutineScope(Dispatchers.Main).launch{} vs CoroutineScope(Dispatchers.Main).launch(DispathersMain){}?
Я прочитал, что контекст указываемый в конструкторе CoroutineScope это место выполнения в соответствующем потоке(в мэйн потоке или в новом), а launch это сам запуск корутины, в которой, можно накидать еще кучу лаунчей, у каждого лаунча можно в конструкторе указать место выполнения, но, зачем тогда указывать место выполнения CoroutineScope? Я запутался.