Problème: En suivant ce tutorial, j'ai affecté différentes QoS aux 2 files d'attente. Cependant, lorsque j'ai exécuté le code, les files d'attente agissent comme si elles avaient la même priorité. De plus, les points bleus s'impriment avant les points rouges même si les points rouges sont appelés en premier. J'ai couru le code sur le completed project fourni par le tutoriel.Files d'attente ne suivant pas la priorité QoS
Note: Une fois, lorsque j'ai supprimé l'application sur le simulateur et que j'ai réexécuté l'application, j'ai obtenu un output qui était très proche du tutoriel. Mais après avoir réexécuté le code, j'ai eu la sortie ci-dessous. Même la suppression et la réexécution de l'application, me donne juste la même sortie.
code
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
queuesWithQoS()
}
func queuesWithQoS() {
let queue1 = DispatchQueue(label: "com.appcoda.queue1", qos: DispatchQoS.userInitiated)
let queue2 = DispatchQueue(label: "com.appcoda.queue2", qos: DispatchQoS.utility)
queue1.async {
for i in 0..<10 {
print("", i)
}
}
queue2.async {
for i in 100..<110 {
print("", i)
}
}
}
Ma sortie:
de sortie Tutoriel:
La qualité du service aura tendance à préférer la file d'attente de priorité plus élevée (en particulier lorsque dans des situations critiques de contention), mais il est pas garanti d'exécuter tous les blocs de QdS plus avant le début de la QOS inférieure . – Rob
"De plus, les points bleus sont imprimés avant les points rouges même si les points rouges sont appelés en premier" Si vous pensez que cela est pertinent, vous n'avez pas compris "asynchrone". – matt