2. 코루틴 실행하기
·
Coroutines
출처: 조세영님의 인프런 강의, 코틀린 코루틴 강의 완전 정복  runBlocking 사용해서 코루틴 만들기runBlocking 함수는 이 함수를 호출한 스레드를 사용해 실행되는 코루틴을 만들어낸다.runBlocking 코루틴이 종료될 때 스레드 점유가 해제된다. run(실행) + Bloking(차단)하지만 여기에서 쓰인 Blocking의 의미는 스레드 블로킹이 일어나서 스레드가 사용되지 못하는 상태를 칭하는 것이 아니다. 블로킹(차단)을 통해 다른 작업을 가능하게 해준다는 의미로 쓰인 것이다.runBlocking을 사용하여 코루틴을 생성한 후 launch를 사용해 또 다른 코루틴을 생성할 수 있다. lauch를 통해 생성하는 이유는, 동기적인 코드와 코루틴(코루틴은 기본적으로 비동기적)을 함께 사용할 ..
1. 스레드 기반 작업의 한계와 코루틴의 등장
·
Coroutines
출처: 조세영님의 인프런 강의, 코틀린 코루틴 강의 완전 정복 강의의 첫 번째 실습에서는 메인 스레드에서 새로운 스레드를 생성하여 멀티 스레딩 동작을 파악했다. 두 스레드의 동작을 출력하여 스레드의 시작과 끝 시점을 파악했다. 자바에서 자주 사용하는 방식의 코드를 실행한 후, 코틀린의 람다 형식으로 간단하게 변경했다.그러나 Thread를 직접 생성하여 사용하는 방식에는 한계가 존재한다. Thread start를 호출할 때마다 새로운 스레드가 생성되고 재사용이 어렵다 (스레드는 비싼 자원이므로 치명적인 단점)개발자가 스레드 생성과 관리에 대한 큰 책임을 진다 (실수나 오류로 메모리 누수 위험이 있고, 프로그램이 복잡해질수록 관리하기 어려움) 해당 문제를 해결하기 위한 방법으로 Executor 프레임워크가 ..