// Serial(직렬)
let serialQueue = DispatchQueue(label: "serialQueue")
serialQueue.async {
for i in 0..<3 {
print("serialQueue: \(i)")
}
}
serialQueue.async {
for i in 3..<6 {
print("serialQueue: \(i)")
}
}
DispatchQueue
를 사용하여 Serial(직렬) 방식으로 작업을 처리하는 코드이다. serialQueue
라는 이름을 가진 DispatchQueue
를 생성하고, 두 개의 클로저를 async
메소드로 실행시키면, 첫 번째 클로저가 모두 실행된 후에 두 번째 클로저가 실행된다. 따라서 결과는 다음과 같다.serialQueue: 0
serialQueue: 1
serialQueue: 2
serialQueue: 3
serialQueue: 4
serialQueue: 5
// Concurrency(동시)
let concurrentQueue = DispatchQueue(label: "concurrentQueue", attributes: .concurrent)
concurrentQueue.async {
for i in 0..<3 {
print("concurrentQueue 1: \(i)")
}
}
concurrentQueue.async {
for i in 3..<6 {
print("concurrentQueue 2: \(i)")
}
}
DispatchQueue
를 사용하여 Concurrency(동시) 방식으로 작업을 처리하는 코드이다. concurrentQueue
라는 이름을 가진 DispatchQueue
를 생성하고, 두 개의 클로저를 async
메소드로 실행시키면, 두 개의 클로저가 동시에 실행된다. 따라서 결과는 다음과 같다.concurrentQueue 1: 0
concurrentQueue 1: 1
concurrentQueue 2: 3
concurrentQueue 2: 4
concurrentQueue 1: 2
concurrentQueue 2: 5
제가 학습한 내용을 요약하여 정리한 것입니다. 내용에 오류가 있을 수 있으며, 어떠한 피드백도 감사히 받겠습니다.
감사합니다.