본문 바로가기

코틀린

코틀린: 6장 스레드와 코루틴 - 오류 정정

쉽게 다가가는 최신 프로그래밍: 코틀린 "6장 스레드와 코루틴"에 오타가 있어 정정합니다.

■ 393쪽 - withContext 예제(지연 시간 수정)
코드를 실행했을 때 "We received 'Hello, Kotlin'"이 출력되지 않을 수 있습니다. main() 함수의 sleep 값이 1_000으로 설정되어 있어 대기 시간이 짧아 출력되지 않는 것입니다. 아래 보인 것처럼 2000L로 수정하기 바랍니다. 

fun main() {
    updateUI()
    Thread.sleep(2000L) // 책은 1_000으로 표시
}

Long 타입 값을 나타내는 'L'은 생략해도 됩니다. Thread.sleep(2000L) 대신 단순히 sleep(2000L)을 입력하려면, import java.lang.Thread.sleep 이 추가되어 있어야 합니다.


■ 394쪽 - job 객체의 join() 메소드(오타 정정)
println() 문에서 println("$ 코투린 ...")과 println("$ 메인 ... ")으로 오타가 있습니다. println("$ 코투린 ...") 은 println("코루틴 - ${... }")처럼 $ 위치를 중괄호 쪽으로 옮겨야 합니다. println("$ 메인 ... ") 도 마차간지로 println("메인 - ${... }")로 수정해야 합니다.

println()에서 "코투린"은 오타이므로 "코루틴"으로 수정해야 합니다. 실행 결과를 캡처한 이미지에서도 감기약 이름처럼 "코투린"으로 출력되었습니다.

fun main() {
    GlobalScope.launch {
        println("코루틴 - ${Thread.currentThread().name}") // "$ 코투린"으로 잘못 표기
        println("World!")
    }
    println("메인 - ${Thread.currentThread().name}") // "$ 메인"으로 잘못 표기
    println("Hello, ")
    Thread.currentThread().join()
}

 

■ 395쪽 - 오타 정정
println()에서 "코투린"은 오타이므로 "코루틴"으로 수정해야 합니다. 실행 결과를 캡처한 이미지에서도  "코투린"으로 출력되었습니다.

■ 396쪽 - 디버그 창에서 코루틴 동작 확인(메뉴 변경)
IDEA 버전이 업그레이드 되면서 책에 설명한 디버그 창의 메뉴가 다를 수 있습니다. 디버그 모드에서 아래 그림에 보인 것처럼 "스레드 덤프 받기"(카메라 아이콘)를 클릭하면 책에 보인 이미지처럼 메인 스레드와 코루틴 동작 여부를 확인할 수 있습니다.

스레드 동작 확인