Многопоточность в iOS. Part I - Разбор вопросов с IOS собеседований
Как и обещал: var sleepTaskArray = [UInt32]() sleepTaskArray.append(3) sleepTaskArray.append(7) sleepTaskArray.append(15) let semaphote = DispatchSemaphore(value: 1) let queue = DispatchQueue(label: "queue", attributes: .concurrent) for taskItem in sleepTaskArray { serialQueue.async { for i in 1...taskItem{ sleep(1) print("TaskItem: \(taskItem), i: \(i)") } semaphote.signal() } semaphote.wait() }