Sommaire

Exécution asynchrone et en parallèle

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 ...