동시성 부분 추가 공부하면서 헷갈리는 부분 질문 드립니다.
안녕하세요 선생님!
동시성과 병렬성 관련해 기초가 약해 해당 강의를
들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다.
다름이 아니라 해당 강좌 범위는 벗어나지만..
구글링해도 명확하게 해결되지 않아 질문 드립니다.
동시성을 구현하는 방법으로
멀티쓰레드나 코루틴 방법으로 구현을 할 수있고
멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다.
많은 블로그에서
멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요.
I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다.
싱글스레드 + async
싱글스레드
멀티스레드 + async
멀티스레드
2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요?
(파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.)
다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다.
( _ _ )
답변 1
0
'I/O 작업이 빈번할 경우 코루틴이 더 유리' 하다는 말의 큰 전제는 느린 I/O 입니다. 디스크 입/출력이나 네트워크 입/출력이 대표적이라 하겠습니다. 그리고 질문 중 이해가 되지 않는 부분은 '2개의 구현 방법이 레이어가 다르다'라는 말입니다. 제가 C/C++ 분야에 특화되어 더 그런 것 같습니다.
코루틴이 좋은 성능을 내는 이유는 Thread가 Wait할 일 없이 촘촘하게 연속적으로 연산할 수 있도록 하고 있기 때문입니다. 스레드 스위칭 오버헤드도 개선되고요. 아래 글을 참고하시기 바랍니다.
https://todaycode.tistory.com/179
그렇다면 사실 결론은 좀 나온 것과 같습니다. 당연히 멀티스레드 환경이어야 하며 그 과정에서 동기화는 필수 입니다. 따라서 '실제 동시성을 적용'한다는 말 자체는 의미가 없다고 하겠습니다. 참고하시기 바랍니다.:)
강의신청 후
0
17
1
안녕하세요 강사님 문의사항이 있습니다
0
19
1
수강 연장 문의
0
26
4
수강기간 연장 관련 문의
0
26
2
작업형2모의문제3_updated2026.10
0
41
2
안녕하세요. 수강연장 신청드립니다
0
26
2
코랩 링크
0
24
2
사용자설정에 claude 설정들은 어떻게 하나요??
0
31
1
윈도우 환경에서는 진행이 어렵나요?
0
37
1
시계열 분석 문의
0
26
1
작업형2 모의문제2 updated 2026.10 질문
0
40
2
카이제곱 독립성검정 질문합니다.
0
35
2
수정 자료 요청
0
34
1
기출 7회 작업형2 평가지표 문의드립니다.
0
30
2
수강연장 문의 드립니다!
0
42
3
수강연장 문의드립니다
0
38
4
작업형2모의문제3_updated2026.10
0
50
2
엔비디아, 테슬라, 등등 최근에 많이 오른 주식들 accuracy이슈
1
39
2
밴티지api 막혀서 공매도 잔고설정 으로 다시 로직 설정한 강의에 대해서.
1
42
1
작업형2 모의문제3_updated2026.10
0
42
2
38강에서 불균형 데이터 처리하는 stratify를 꼭 해줘야하는건지 질문합니다.
0
40
2
수강강의 연장 관련 문의
0
55
2
run.py 실행하니 아예 전체다 돌아가요 코드가
1
36
2
run.py 실행시키면, 자동으로 바로 경제 지표 데이터를 수집해요
1
31
2





