728x90
반응형
iOS Concurrency 간단 정리!!
Concurrency란? 동시성
-> 프로그램을 실행할 때 단 하나의 실행 순서를 갖도록 하는 제약을 없애고 각 부 프로그램이 다른 부프로그램과 병렬적으로 동시에 실행되는 것
-> 두 개 이상의 프로세스들이 다른 프로세스의 수행과 상호 독립적으로 동시에 수행될 수 있는 성질
-> Concurrency은 여러 스레드가 동시에 진행되는 것처럼 보이나 실은 작업을 번갈아가며 진행하는 것이다.
비동기(Asynchronous) 프로그래밍
프로그램의 주 실행 흐름을 멈추어서 기다리는 부분 없이 바로 다음 작업을 실행할 수 있게 하는 방식
코드의 실행 결과 처리를 별도의 공간에 맡겨둔 위 결과를 기다리지 않고 바로 다음 코드를 실행하는 병렬처리 방식
보통 네트워크 작업이 사용되는 곳에 비동기 프로그램이 사용된다.
동시성 프로그램의 종류
- 병렬설(Parallelism) 프로그래밍
물리적으로 정확히 동시에 진행되는 것, 멀티 코어에서 멀티 스레드를 동작시키는 방식으로 데이터 병렬성(Data Parallelism)과 작업 병렬성(Task Parallelism)으로 구분
- 데이터 병렬성 : 전체 데이터를 나누어 서브 데이터들로 만든 뒤 서브 데이터를 병렬 처리하여 작업을 빠르게 수행
- 작업 병렬성 : 서로 다른 작업을 병렬 처리
동시성, 병렬성 모두 비동기 동작을 구현할 수 있지만 동작 원리가 다르다.
동시성 : 통장을 만들러 온 N개의 대기열과 한 명 이상의 은행직원 -> 논리적, 싱글. 멀티코어
병렬성 : 통장을 만들러 온 N개의 대기결과 N명의 은행직원 -> 멀티코어
Reference
Naver 커넥트 재단 - edwith http://www.edwith.org/boostcourse-ios/lecture/16866/
반응형
'Programming > Swift' 카테고리의 다른 글
[Swift] Swift 언어의 특징 - 강한 타입 (0) | 2019.06.11 |
---|---|
[Swift] - Swift Type 알아보기 (0) | 2019.06.11 |
[Swift4.2] Swift로 함수형 프로그래밍 시작하기 - Pure Function (0) | 2019.02.15 |
[iOS/Swift] Initialization (0) | 2018.12.13 |
[Swift] Switch 표현식 (0) | 2018.10.20 |