[iOS] GCD
GCD
Dispatch Queue
タスクは、
Serial Dispatch Queue
// MARK: [코드 1] Custom Serial Dispatch Queue 예시
// (qos 설정 가능하지만 설정 안해주면 iOS 가 작업을 판단해서 qos 추론한다.)
let serialQueue = DispatchQueue(label: "myQueue.serial")
Concurrent Dispatch Queue
// MARK: [코드 2] Custom Concurrent Dispatch Queue 예시
// (qos 설정 가능하지만 설정 안해주면 iOS 가 작업을 판단해서 qos 추론한다.)
let concurrentQueue = DispatchQueue(label: "myQueue.concurrent", attributes: .concurrent)
Main Queue
// MARK: [코드 3] Main Queue 예시
let mainQueue = DispatchQueue.main
Global Queue
// MARK: [코드 4] Global Queue 예시
let globalQueue = DispatchQueue.global(qos: .background)
qosパラメータ(優先度設定)
DispatchQueue.global(qos: .userInteractive)
DispatchQueue.global(qos: .userInitiated)
DispatchQueue.global()
DispatchQueue.global(qos: .utility)
DispatchQueue.global(qos: .background)
DispatchQueue.global(qos: .unspecified)
同期メソッド
// MARK: [코드 5] Dispatch Queue 의 sync 메소드 예시
DispatchQueue.main.sync {
print("SYNC METHOD 실행중 ~~")
}
print("SYNC METHOD 실행 끝 !")
asyncメソッド
// MARK: [코드 6] Dispatch Queue 의 async 메소드 예시
DispatchQueue.global(qos: .background).async {
print("ASYNC METHOD 실행중 ~~")
}
print("ASYNC METHOD 실행 끝 !")
リファレンス
Reference
この問題について([iOS] GCD), 我々は、より多くの情報をここで見つけました https://velog.io/@h0neydear/iOS-GCDテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol