섹션 15 동기와 비동기의 개념 질문있습니다
432
投稿した質問数 8
강의를 듣던 도중 동기 , 비동기, 직렬, 동시 에 개념에 대해서 질문이 생겼습니다.
직렬의 경우 그림으로 표현해 주셨던 것처럼
다른 하나의 쓰레드에서 task를 순서에 따라 전부 다 처리한다고 이해했는데,
제가 이해한 것이 맞다면,
동기 방식으로 직렬 테스크를 처리했을 때 굳이 다른쓰레드로 테스크를 넘기는 것이 의미가 있나요? 비동기라면 해당 테스크를 직렬로 처리하더라도 동시에 다른 테스크를 진행할 수 있다고 생각하지만 동기처리의 경우 결국 메인쓰레드에서 진행하는 것과 같은 수준의 처리시간이 들고 오히려 쓰레드를 바꾸는데에 대한 리소스만 더 사용하게 되는것은 아닌가요??
라는 의문이 들었습니다..!
回答 1
0
네 수훈 님 맞습니다.
동기(sync) / 직렬 (serial)이 의미가 없지 않나? 라고 질문을 주셨는데, 정확하게 맞습니다.
앞으로 앱을 더 많이 만들어보시거나,
여러가지 코드를 구글링해서 찾아보시면 많이 느끼시겠지만,
실제로 동기(sync)로 사용하는 경우도 거의 보지 못하실 꺼예요.
동기 자체가 실질적으로 다른 쓰레드로 보내는 게 의미가 없기 때문에
(동기로 처리하면) 내부적으로도 운영체제가 그냥 본래의 쓰레드에서 처리합니다.
(어짜피 일을 다른 쓰레드에서 시키고 해당 일을 끝낼때 까지 기다리는 것이 의미가 없기에.. 그냥 자기 쓰레드에서 처리하는 것과 별반 다르지 않기에 그냥 처리합니다.)
그래서, 개념적으로 동기/비동기를 설명드린 것이지만, 실제로 비동기 프로그래밍에 대해서
우리가 잘 이해해야 하는 개념은 비동기 프로그래밍입니다. (async)
(실제 코드에서도 거의 대부분의 경우에 비동기 async만 사용하게 됩니다. 우리가 이 단원에 대해서 배우는 목적 자체가 비동기를 이해하고 사용하기 위해서예요.)
그동안 비동기 프로그래밍의 개념없이, 컴퓨터는.. 코드의 순서대로 한줄 한줄 처리하는 줄로만 알았지만, 실제 내부적으로는 CPU(쓰레드)는 여러개이고, 이런 여러개의 CPU를 사용해서 코딩하는 경우가 흔한 데 (비동기 프로그래밍을 이용하는 경우가 흔한데..) 이 것을 개념적으로 정리해드리고 있는 것입니다.
감사합니다.
수강연장부탁드려도될까요..
0
42
2
Drawing Cycle 관련 질문
0
72
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
95
2
델리게이트 패턴 관련 질문
0
66
2
수강 기간 연장 부탁드릴 수 있을까요?
0
61
1
활용 앱 57강 질문입니다.
0
55
1
활용 앱 30강 에러 질문입니다
0
64
2
기초앱 17강 Contraints 설정 질문입니다.
0
67
2
기초 앱 4강 Type Any -> UIButton
0
66
2
34강 유용한 앱 추천에 나오는 UIKitViewer에 대해서 질문이 있습니다
0
78
1
깃에 코드는 올려도 된다고 하셨는데
0
109
1
수강기간 연장신청 드려도 될까요?
0
82
1
수강 기간 연장 부탁드려도 될까요?
0
120
2
수강 기간 연장 신청 요청드립니다.
0
131
2
playground에서 상단 실행?아이콘 회전 관련하여...
0
136
1
활용앱53강에서 질문있습니다.
0
164
2
Project 명칭 변경방법이 궁금합니다.
0
140
1
override 에 대해서 궁금한 것이 있습니다.
0
124
2
섹션8] 코드 리팩토링 문의
0
99
1
xcode 에서 ios 버전 선택 및 시뮬레이터 관련 질문
0
566
2
수강 기간 연장 부탁드려도 될까요?
0
130
2
뷰모델의 상태변화 와 didSet
0
98
1
@Sendable 키워드
0
94
1
클로저
0
105
2

