Проверка данных в очередях (потоках)
Я делаю три очереди. В каждой выполняется метод, который проверяет [String] на Int(String). Если проверка срабатывает, в массив добавляется Int и метод возвращает [Int].
В очереди проверяю если массив не пустой то print([Int]). Но если во всех очередях массив оказался пустым, то мне нужно совершить какое то действие, например print("Arrays didn't content numbers"). Я решил добавить очереди в группы и вызывать group.leave() если массив пустой. Потом вызывать group.notify и уже делать нужное действие. Но считаю, что я делаю не правильно. Подскажите пожалуйста как реализовать правильно?
let group = DispatchGroup()
let queue1 = DispatchQueue(label: "com.queue1", attributes: .concurrent)
let queue2 = DispatchQueue(label: "com.queue2", attributes: .concurrent)
let queue3 = DispatchQueue(label: "com.queue3", attributes: .concurrent)
let mainQueue = DispatchQueue.main
group.enter()
queue1.async {
if !convertToInt(passwordArray1).isEmpty {
print(convertToInt(passwordArray1))
} else {
group.leave()
}
}
group.enter()
queue2.async {
if !convertToInt(passwordArray1).isEmpty {
print(convertToInt(passwordArray1))
} else {
group.leave()
}
}
group.enter()
queue3.async {
if !convertToInt(passwordArray1).isEmpty {
print(convertToInt(passwordArray1))
} else {
group.leave()
}
}
group.notify(queue: mainQueue) {
print("Arrays didn't content numbers")
}