기본적으로 코루틴은 DefaultDispatcher에서 실행된다.
fun main(args: Array<String>) = runBlcking {
val dispatcher = newSingleThreadContext(name = "thread1")
val task = GlobalScope.launch(dispatcher) {
// ..
}
task.join()
}
위와 같이 디스패처를 생성하고, launch의 매개변수로 전달하면 지정된 스레드에서 코루틴이 실행된다.
newSingleThreadContext은 코루틴 디스패처를 상속받은 메서드이다.
단일 스레드로 디스패처를 생성한다. 여기에서 실행되는 코루틴은 항상 같은 스레드에서 시작되고 재개된다.