US

Introduction

On sait maintenant écrire des programmes concurrents basiques, c'est-à-dire des programmes qui sont destinés à exécuter plusieurs instructions en même temps. On va commencer à voir, avec ce chapitre, qu'on n'écrit pas un programme concurrent n'importe comment, sans quoi on fera très vite face à de nombreux problèmes.

Dans ce chapitre, on va voir les différents problèmes qui peuvent survenir lorsque plusieurs threads vont se partager un objet et vont vouloir effectuer en même temps des opérations sur cet objet partagé. Des problèmes de cohérence peuvent apparaitre, mais également des corruptions de l'état de cet objet.

Une solution pour gérer ces problèmes consiste à utiliser la synchronisation de threads. Ce mécanisme du langage Java permet d'organiser les threads de manière à ce que, pour certaines parties du programme, plusieurs threads ne soient pas en même temps en train d'exécuter ces parties de programme. Mais comme on le verra, ce mécanisme, mal utilisé, va introduire un nouveau problème : les deadlocks. Il s'agit de situation où le programme est bloqué et plus aucune instruction ne pourra être exécutée.

Enfin, on terminera le chapitre en voyant les différents niveaux de sécurité résumés par Joshua Bloch. Ces niveaux permettent de définir dans quelle mesure on va pouvoir utiliser les objets ayant un certain niveau de manière plus ou moins sure dans une application concurrente.

Plan du chapitre

  1. Objet partagé
  2. Synchronisation
  3. Deadlock
  4. Niveau de sécurité
Chapitre 2
  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter