본문 바로가기

iOS

시리얼(Serial) 큐, 컨커런트(Concurrent) 큐

728x90
반응형
SMALL

시리얼(Serial) 큐, 컨커런트(Concurrent)

애초에 직렬, 병렬 뜻입니다..... 어렵게 생각맙시다....

 

시리얼(Serial) 큐와 컨커런트(Concurrent) 큐는 iOS 애플리케이션에서 멀티스레딩을 구현하는 데 사용되는 기술입니다.

시리얼 큐는 작업들이 순차적으로 실행되는 큐입니다. 큐에서 하나의 작업이 끝나야 다음 작업이 실행됩니다. 이러한 특성 때문에, 시리얼 큐는 데이터를 안전하게 다룰 있도록 보장합니다. 시리얼 예제 코드는 다음과 같습니다.

let serialQueue = DispatchQueue(label: "com.example.serialqueue")

serialQueue.async {
    // 첫 번째 작업
}

serialQueue.async {
    // 두 번째 작업
}

serialQueue.async {
    // 세 번째 작업
}

 

컨커런트 큐는 여러 개의 작업이 동시에 실행될 있는 큐입니다. 큐에서는 작업들이 동시에 실행될 있기 때문에, 시간이 많이 걸리는 작업이 있는 경우에는 다른 작업이 먼저 실행될 있습니다. 컨커런트 예제 코드는 다음과 같습니다.

let concurrentQueue = DispatchQueue(label: "com.example.concurrentqueue", attributes: .concurrent)

concurrentQueue.async {
    // 첫 번째 작업
}

concurrentQueue.async {
    // 두 번째 작업
}

concurrentQueue.async {
    // 세 번째 작업
}

예제 코드에서 DispatchQueue label 파라미터는 큐를 식별하는 사용되며, attributes 파라미터는 큐의 특성을 지정합니다. 시리얼 큐와는 달리, 컨커런트 큐에서는 attributes 파라미터를 .concurrent 지정해야 합니다.

728x90
반응형
LIST

'iOS' 카테고리의 다른 글

iOS 계층구조-1  (0) 2023.04.15
2023 WWDC Student Challenge 도전.  (0) 2023.04.14
싱글톤 패턴, 옵저버 패턴, 코디네이터 패턴  (0) 2023.04.13
REST API  (0) 2023.04.13
Content hugging과 Compression resistance  (0) 2023.04.12