1. Principe
Certaines opérations peuvent prendre
un certain temps : écrire ou lire un fichier, effectuer
des calculs complexes, traiter un fichier image ou vidéo,
lire des données depuis un service web ou en envoyer...
Dans le framework Cocoa Touch, comme dans
de nombreux frameworks d’application, toutes les opérations
visuelles et les prises d’entrée utilisateur sont effectuées
sur le même fil d’exécution (thread) : le fil
principal.
Par conséquent, toute opération
coûteuse ou longue effectuée de manière
synchrone sur ce fil principal bloque irrémédiablement
toute animation ou réaction aux actions de l’utilisateur.
Les applications iPhone sont conçues pour répondre
immédiatement aux gestes de l’utilisateur, ce dernier a
donc l’impression que l’application a planté. D’une manière
générale, le moindre blocage même d’une
fraction de seconde risque de se remarquer et de donner une impression
de qualité inférieure.
Il est donc important de comprendre les principes
de l’exécution asynchrone et en parallèle dans
le contexte d’une application iPhone.
Une instruction est dite asynchrone si son
exécution ne bloque pas le trait. C’est le cas par exemple
des appels à UIView.animate(withDuration:animations:) qui
peuvent prendre plusieurs secondes mais n’empêchent ...