본문 바로가기
프로그램 개발해서 돈벌기/iOS

[swift] DispatchQueue.global(qos: .userInitiated).async vs DispatchQueue.main.async 공통점과 차이점

by ubmuhan 2023. 2. 23.
반응형

DispatchQueue.global(qos: .userInitiated).async와 DispatchQueue.main.async 모두 비동기적으로 작업을 실행하는 방법 중 두 가지입니다. 하지만 두 방법은 목적과 사용되는 큐의 특성에 따라 차이점이 있습니다.

 

공통점:

  • 두 방법 모두 비동기적으로 작업을 실행하므로, 현재 실행중인 스레드와는 별도의 백그라운드 스레드에서 작업이 실행됩니다.
  • 두 방법 모두 클로저를 인자로 받아 실행합니다.
  • 두 방법 모두 큐(Queue)를 사용하여 작업을 관리합니다.

 

차이점:

  • DispatchQueue.global(qos: .userInitiated).async는 글로벌 백그라운드 큐에서 실행되며, .userInitiated QoS 클래스를 사용합니다. 이는 중요하고 높은 우선순위의 작업을 실행할 때 사용됩니다.
  • DispatchQueue.main.async는 메인 큐에서 실행되며, 메인 스레드와 연결됩니다. 이는 주로 UI 업데이트와 같은 작업에 사용됩니다.
  • DispatchQueue.global(qos: .userInitiated).async는 보통 더 많은 양의 작업을 처리하고, 작업이 끝날 때까지 기다리는 것이 필요하지 않습니다.
  • DispatchQueue.main.async는 UI 업데이트와 같은 빠른 작업을 처리하며, 보통 다른 큐에서 실행되는 작업의 완료 후 UI 업데이트를 수행하는 등의 동기화 작업이 필요합니다.
 
반응형

댓글