var sharedResource = [String]()
let semaphore = DispatchSemaphore(value: 0)
let dispatchQueue = DispatchQueue.global(qos: .background)
dispatchQueue.async {
self.fetchImage { (_, _) in
print("Finished fetching image 1")
self.sharedResoure.append("1")
semaphore.signal()
}
semaphore.wait()
self.fetchImage { (_, _) in
print("Finished fetching image 2")
self.sharedResoure.append("1")
semaphore.signal()
}
semaphore.wait()
self.fetchImage { (_, _) in
print("Finished fetching image 3")
self.sharedResoure.append("1")
semaphore.signal()
}
semaphore.wait()
print("Start fetching images")
}
result:
Start fetching images
Finished fetching image 1
Finished fetching image 2
Finished fetching image 3