https://user-images.githubusercontent.com/73867548/153408968-b42522db-d1e1-43e4-b7a2-8e101cab45d7.png

import Foundation

let order1 = BlockOperation {
    print("돈까스")
    print("떡볶이")
}

let order2 = BlockOperation {
    print("튀김 우동")
}

let order3 = BlockOperation {
    print("알리오 올리오")
    print("생맥주 2")
}

let order4 = BlockOperation {
    print("과일 세트")
    print("LA 갈비")
}

let order5 = BlockOperation {
    print("김치전")
    print("바닐라 아이스크림")
}

let orderBar = OperationQueue()

// 동시에 실행할 수 있는 대기 중인 작업의 최대 수
// 현재 대기열이 동시에 실행하는 작업에만 영향을 줌
// 다른 작업 대기열도 최대 작업 수를 병렬로 실행할 수 있음
orderBar.maxConcurrentOperationCount = 2

orderBar.addOperation(order1)
orderBar.addOperation(order2)
orderBar.addOperation(order3)
orderBar.addOperation(order4)
orderBar.addOperation(order5)

// orderBar.waitUntilAllOperationsAreFinished()

// orderBar.addOperations([order1, order2, order3, order4, order5], waitUntilFinished: true)

관련 문서

Apple Developer Documentation

Apple Developer Documentation