clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • uikit
  • Q
  • ㅅ
  • Swift

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

iOS. GCD의 개념과 Dispatch큐(Queue)종류? Qos
IOS

iOS. GCD의 개념과 Dispatch큐(Queue)종류? Qos

2023. 3. 15. 11:49

 

❓메인 큐 - DispatchQueue.main 

  • 메인큐 = 메인쓰레드
  • 직렬로 작동한다.

기본적으로 실행하는 코드는 직렬 + 동기적으로 실행된다.

일반적으로 사용하는 print("123456") 이란 코드는 아래와 같은 의미가 숨겨져 있다.

DispatchQueue.main.sync{
    print("123456"
}

❓글로벌 큐 - DispatchQueue.global() 

DispatchQueue.global().async{

}
  • 글로벌큐 중 디폴트
  • 기본적으로 동시(Concurrent)큐
  • 여러개의 쓰레드를 사용한다.
  • QoS에 따라서 여러개로 나뉜다.  ex) DispatchQueue.global(qos: .utility)

❓QoS (Quality of Service)

  •  서비스의 품질에 따라서 나뉜다.
  • 서비스의 품질이 높으면 높을수록 여러개의 쓰레드를 사용한다.
  • iOS가 알아서 우선적으로 중요한 일을 인지하고 쓰레드에 우선순위를 매겨 더 많은 쓰레드를 사용하고, 배터리를 집중적으로 사용해서 더 순위가 높은 큐의 작업들을 더 빨리 끝내도록 하는 개념

디폴트 큐가 쓰레드를 4개 쓰면 utility큐는 2개를 사용하는 것처럼 순위가 높은 큐가 더 많은 쓰레드를 사용한다.

 

 


❓프라이빗(Custom)큐 - DispatchQueue(label: "...") 

  • 커스텀으로 만드는 큐
  • 기본 설정: 직렬(Serial)
  • 동시큐로도 선언할 수 있다.
  • 직렬이므로 하나의 쓰레드를 사용한다.
  • Qos 설정가능
DispatchQueue(label: "customQueue") // Serial직렬큐

DispatchQueue(label: "customQueue", attributes: .concurrent) //동시(Concurrency)큐

 

 

 

저작자표시 비영리 동일조건 (새창열림)
    'IOS' 카테고리의 다른 글
    • iOS. 동시성 프로그래밍 DeadLock, Race condition 해결방법
    • iOS. 디스패치큐(GCD) 사용시 주의해야할 사항
    • iOS. 동시성프로그래밍(2) - 동기, 비동기, 직렬, 동기
    • iOS. 동시성(Concurrency) 프로그래밍(1) - 동시성프로그래밍이란? feat. 병렬/동시
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바