1
Live Coding Task 1: Asynchronous Processing
Практика1. Задача: Написать функцию processAll для асинхронной обработки массива процессоров
protocol Processor {
func process(_ completion: @escaping (String) -> Void)
}
func processAll(
processors: [Processor],
allCompleted: @escaping ([String]) -> Void
) {
}
}Ответ
protocol Processor {
func process(_ completion: @escaping (String) -> Void)
}
func processAll(
processors: [Processor],
allCompleted: @escaping ([String]) -> Void
) {
let group = DispatchGroup()
let lock = NSLock()
var results = Array(repeating: "", count: processors.count)
results.reserveCapacity(processors.count)
for (index, processor) in…