1. 동시성 프로그래밍
- 멀티 스레드 환경에서 여러가지 작업을 동시에 처리하는 기술을 뜻함
- 여러개의 스레드를 이용 효율적 작업 처리가 가능
- 효율적 -> 사용성 / 반응성 / 성능이 개선된다.
CS 지식 더하기
코어 :
- CPU의 핵심으로 실제로 일을 처리하는 부분
- 한 번에 한가지 일만 처리 가능
스레드 :
- 하드웨어에서의 스레드 : 하나의 코어로 N 가지 작업을 수행 할 수 있도록 처리
- 소프트웨어에서의 스레드 : 프로그램 내부에서 작업 단위가 되는 가상의 스레드
- 동시성프로그래밍이란 소프트웨어에서의 멀티 스레딩을 이용한 기술
2. 병렬 프로그래밍
- 여러 개의 코어가 하나의 작업을 분담해서 처리하는 방식
- 큰 영상 혹은 그래픽 처리시 여러개의 CPU가 이미지를 분할하여 담당 -> 더 빠른 작업처리 속도
- 많은 연산이 필요한 그래픽 처리나 머신러닝에 적합한 프로그래밍 방식
- 물리적으로 CPU가 여러 개 있는 경우만 가능
3. 동기 / 비동기
- 동기 : 작업이 끝나기를 기다리는것
- 비동기 : 작업이 끝나기를 기다리는 것이 아닌 바로 다음 코드 블록을 실행
- 개념의 차이는 실행 종료 시점을 알 수 있는 가
4. Swift의 동시성 프로그래밍
- GCD
- Operation
- async / await