Concurrence en programmation
Organiser plusieurs tâches pour que leurs périodes de traitement puissent se chevaucher.
Qu’est-ce que la concurrence en programmation ?
La concurrence organise des tâches dont les traitements se chevauchent. Elles peuvent progresser tour à tour sur un processeur, notamment lorsqu’une tâche attend des données. Une exécution réellement simultanée n’est pas nécessaire : c’est le parallélisme. Les parcours concurrents demandent de gérer ordre, résultats et état partagé.
Dans un portail fictif, plusieurs récupérations de documents avancent pendant le traitement d’autres demandes. L’ordre des réponses peut différer de l’ordre de départ. L’équipe relie chaque résultat à la bonne demande et empêche une ancienne réponse de remplacer silencieusement un état plus récent. La concurrence peut utiliser les ressources pendant l’attente, sans garantir débit supérieur ni données sans erreur. Coordination adaptée et états d’erreur vérifiés restent nécessaires.
Sources
Termes associés
- Programmation asynchroneAttendre un résultat sans bloquer pour autant l’ensemble du traitement prévu.
- ParallélismeExécuter réellement plusieurs calculs au même moment.
- Condition de concurrenceUn résultat erroné dépend de l’ordre chronologique d’accès simultanés qui se chevauchent.
- Cache stampedeUn cache stampede survient quand plusieurs requêtes manquent la même entrée en cache et relancent le même calcul coûteux.
- BackpressureLa backpressure adapte le débit entrant à la capacité de traitement du destinataire grâce à un signal de ralentissement ou de pause.
- Fuite de mémoireDe la mémoire devenue inutile reste occupée sans nécessité pendant l’exécution du programme.
Votre projet avec ASES
Décrivez-nous votre projet. Nous revenons vers vous avec une première évaluation.