Swift: Concurrency Programming / 동시성 프로그래밍

Wooyo·2023년 10월 27일
0
post-thumbnail

1. 동시성 프로그래밍

  • 멀티 스레드 환경에서 여러가지 작업을 동시에 처리하는 기술을 뜻함
  • 여러개의 스레드를 이용 효율적 작업 처리가 가능
  • 효율적 -> 사용성 / 반응성 / 성능이 개선된다.
CS 지식 더하기

코어 : 
- CPU의 핵심으로 실제로 일을 처리하는 부분
- 한 번에 한가지 일만 처리 가능

스레드 :
- 하드웨어에서의 스레드 : 하나의 코어로 N 가지 작업을 수행 할 수 있도록 처리
- 소프트웨어에서의 스레드 : 프로그램 내부에서 작업 단위가 되는 가상의 스레드
- 동시성프로그래밍이란 소프트웨어에서의 멀티 스레딩을 이용한 기술

2. 병렬 프로그래밍

  • 여러 개의 코어가 하나의 작업을 분담해서 처리하는 방식
  • 큰 영상 혹은 그래픽 처리시 여러개의 CPU가 이미지를 분할하여 담당 -> 더 빠른 작업처리 속도
  • 많은 연산이 필요한 그래픽 처리나 머신러닝에 적합한 프로그래밍 방식
  • 물리적으로 CPU가 여러 개 있는 경우만 가능

3. 동기 / 비동기

  • 동기 : 작업이 끝나기를 기다리는것
  • 비동기 : 작업이 끝나기를 기다리는 것이 아닌 바로 다음 코드 블록을 실행
  • 개념의 차이는 실행 종료 시점을 알 수 있는 가

4. Swift의 동시성 프로그래밍

  • GCD
  • Operation
  • async / await
profile
Wooyo의 개발 블로그

0개의 댓글