작업 최적화

    [Coroutine] 1. 코루틴은 어떻게 스레드 작업을 최적화 하는가?

    Thread 구조와 다중 Thread 작업의 필요성 하나의 프로세스(Process) 에는 여러 스레드(Thread) 가 있고, 각 스레드는 독립적으로 작업을 수행할 수 있다. 예를 들어 JVM 프로세스 상에서는 스레드는 그림1과 같이 구성된다. 그림1의 메인 스레드(Main Thread)를 보자. JVM프로세스는 메인 스레드가 main 함수를 실행하며 시작되며, 만약 프로세스 내에 사용자 스레드가 메인 스레드 밖에 없는 상황에서는 메인 스레드가 종료되면 프로세스 또한 강제로 종료되는 특성을 가진다. 이때 메인 스레드는 한 번에 하나의 작업을 실행 가능하다. 그런데 그림에서는 메인 스레드말고 다른 2개의 스레드(Thread)가 보인다. 이 스레드(Thread)들은 사용자에 의해 생성되는 스레드로, 메인 스..