미루고 미루던 동시성에 대해 공부를 시작했다.
사실 그동안 아무 생각 없이 써오던 DispatchQueue...
대강 그때그때 필요에 의해, 조금씩. 스레드는 뭐구나 동기 비동기는 이런거구나~ 감으로만 알았달까...
이제와서야 동시성 처리에 대한 깊이있는 처리를 해보게 되면서, 진작에 좀 공부할 걸 후회를 시작으로 인강을 먼저 찾아보았다.
몇 년 전 나온 async await에 대한 내용도 좋지만, 기본기 먼저 다져야겠다는 생각으로 GCD와 Operation을 선택했고.
앨런님의 강의를 결재했다.
iOS Concurrency(동시성) 프로그래밍, 동기 비동기 처리 그리고 GCD/Operation - 디스패치큐와 오퍼레이션
앨런(Allen) | 동시성(Concurrency)프로그래밍 - iOS프로그래밍에서 필요한 동기, 비동기의 개념 및 그를 확장한 GCD 및 Operation에 관한 모든 내용을 다룹니다., ✍️ 강의 제작 동기 '왜 동기vs비동기 개
www.inflearn.com
동시성 프로그래밍 이라고 하면 가장 먼저 떠오르는 비동기와 동기가 있고 직렬과 동시가 있다.
뭐.. 직렬 병렬의 연결이 가장 자연스러울 수 있지만, 동시과 병렬의 의미는 다른 의미로 사용된다.
병렬이란, 시스템 적으로 물리적인 스레드에서 실제 동시에 일을 하는 개념이다.. 라고 설명되는데
비동기, 동기, 직렬, 동시 이 개념들의 가장 상위에 있는 느낌? 이려나
그래서 동시와 병렬의 차이를 찾아보았다.
[Study] 동시성(Concurrency) 과 병렬성 (Parallelism) 올바른 개념 잡기 - 기록은 기억을 지배한다
처음에 접하면 항상 헷갈리기 쉬운 동시성(Concurrency) 과 병렬성(Parallelism) 에 대해 정리해보고자 한다. 시간으로 풀어보기 동시성과 병렬성은 각 작업이 진행되는 시간의 관점에서 살펴봐야 올바
vagabond95.me
이 글이 가장 와 닿은 설명이었다.
이해가 쉽게 단순히 정리해 보면!
싱글 코어에서 멀티 스레드를 동작 시키는 방식이 동시
멀티 코어에서 멀티 스레드를 동작시키는 방식이 병렬
=>
싱글 스레드 두 개가 나란히 비동기적으로 task를 처리 하고 있다고 하면 동시성을 만족하지만 병렬로 처리 되는 것은 아니다.
싱글 스레드 하나씩 각 하나의 코어 안에서 task를 처리 하고 있다고 하면 동시에 두 개의 코어에서 각 스레드의 task를 처리 하고 있으므로 동시성과 병렬성을 모두 만족한다.
그래서 우리는 병렬이 아닌 직렬과 동시에 대한 개념들을 접했던 것.
뭔가 비동기랑 동시랑 차이를 잘 모르고 지냈는데
병렬과 동시의 차이를 이해하고 나니 이 두개는 너무나 당연히 다른 것이었다.
'iOS > iOS' 카테고리의 다른 글
동시성 프로그래밍 (3) - GCD/Operation에 앞서 (0) | 2024.08.09 |
---|---|
동시성 프로그래밍 (2) - GCD/Operation에 앞서 (0) | 2024.07.24 |
네이버 로그인 연동 - 3 / 3 (0) | 2024.04.08 |
네이버 로그인 연동 - 2 / 3 (0) | 2024.04.08 |
네이버 로그인 연동 - 1 / 3 (0) | 2024.04.08 |
댓글