본문 바로가기

iOS

[iOS] GCD란

Task(일)을 하는 스레드(노동자) 

 

메인스레드가 하는 대표적인 작업은 UI를 그리는 일입니다.

 

iOS에서는 작업을 큐에 보내기만 하면 알아서 OS가 서브 스레드로 분산 처리 해줌. 

 

GCD Grand Cetral Dispatch

큐에 넣은 작업들을 스레드에 분배 해주는게 GCD!

스레드를 자동으로 생성하고 실행하고 작업이 종료되면 스레드가 종료됨.

DispatchQueue 가 Queue로 보낸다는 뜻 

globa: DispatchQueue의 종류

async 비동기

 

Operation 

GCD위에서 동작하지만 GCD보다 기능들이 추가되있는 형태

- 동시에 실행할 수 있는 동자의 최대 수 지정

- 동작 일시 중지 및 취소

 

큐의 특성 

Serial(직렬) 한개의 스레드에서 처리

Concurrent(동시) 여러 스레드에 나눠서 처리

 

메인 스레드에서 다른 큐로 보낼 때 .sync를 사용하면 안되는 이유.!

sync 동기는 task가 끝날 때 까지 기다리는데 iOS에서 메인 스레드는 UI를 그리는 작업을 하기 때문에 sync로하면 UI작업이 많이 버벅 거릴 것입니다.

 

DispatchGroup이라구..

스레드 들이 task를 진행하고 마지막 남은 스레드가 task를 완료 했을 때를 알 수 있음.

 

와 여기 참고 주소 GCD나 동기 비동기 등 다른 설명들이 너무 친절히 되있습니다. 다음에 또 읽어 보고 정리하겠슴당

참고

sujinnaljin.medium.com/ios-%EC%B0%A8%EA%B7%BC%EC%B0%A8%EA%B7%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-gcd-grand-dispatch-queue-1-397db16d0305

'iOS' 카테고리의 다른 글

[iOS] Indicator 간단하게 써보기 ㅎ  (0) 2021.02.22
[iOS] Autolayout 코드로만  (0) 2021.02.20
[iOS] SceneDelegate  (0) 2021.02.03
[iOS]Info.plist  (0) 2021.02.03
[iOS] view background pattern image  (0) 2021.02.01