thread 와 coroutine 에 질문이 있습니다.
처음에 아래 그림처럼 thread 는 병렬성이 있고, coroutine 은 동시성이 있다고 이해했었습니다. 만약 그렇다면, 멀티 thread 는 한번에 여러 stack 을 올려놔야 하니, 오버헤드가 발생하는 문제가 생기고, coroutine 은 동시성을 가지지만, task 를 바꿀때 code,data,heap,stack 을 다 바꿔야 하니 context switching 문제가 발생해야 한다고 이해했는데, 제가 어느 부분을 잘못 이해하고 있는 것인지요?
1) thread 설명해주실때 code 의 7번째 줄에서 thread 가 시분할 비동기라고 하셨는데, 이부분이 concurrency 로 코루틴 특징 아닌지... 2) thread 부분 설명해주실때 코드 14줄에서 context switching 비용 발생 문제를 지적해 주셨는지 이부분도 코루틴의 문제가 아닌지.. 헷갈려서 질문드립니다. 추가로 3) 싱글스레드 = 코루틴 이라고 단순히 생각해도 되는지 알려주시면 감사하겠습니다. (코드 6번째 줄)