인프런 커뮤니티 질문&답변
thread 와 coroutine
작성
·
542
0
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번째 줄)
답변 1
1
좋은사람
지식공유자
안녕하세요.
코루틴은 싱글스레이드 안에서 분기 형태로 일을 비동기적으로 처리하는 패턴이고
일반 싱글 스레드 자체로 이해하기보다는 싱글스레드를 효율적으로 활용하는 패턴이라
이해하시면 될 것 같아요.





