US

Introduction

Java™ est un langage de programmation orient� objets et concurrent. Contrairement aux programmes dits s�quentiels, un programme concurrent est capable d'ex�cuter plusieurs instructions en m�me temps, en parall�le. Mais comment �a se passe en pratique sur la machine ? Il faut distinguer deux cas : soit la machine ne dispose que d'un seul processeur physique, soit elle en a plusieurs ou elle n'en a qu'un seul, mais avec plusieurs cœur.

Dans le cas de machines avec plusieurs processeurs ou de processeurs avec plusieurs cœurs, c'est assez �vident, il va y avoir � tout moment plusieurs instructions qui seront r�ellement ex�cut�es en m�me temps en parall�le. Pour les machines ne disposant que d'un seul processeur, l'ex�cution parall�le va en r�alit� �tre simul�e. Le syst�me d'exploitation de la machine va prendre en charge l'ordonnancement des diff�rentes t�ches devant �tre ex�cut�es en parall�le et il va faire en sorte que chacune d'elle soit ex�cut�e en alternant entre celles-ci.

Ex�cution d'un programme concurrent sur une machine monoprocesseur et multiprocesseurs
Figure 1 Ex�cution d'un programme concurrent sur une machine monoprocesseur et multiprocesseurs.

Vous utilisez tous les jours des programmes concurrents, parfois m�me sans le savoir. D�j�, tous les syst�mes d'exploitation courants sont hautement concurrents (Microsoft Windows, Linux, Mac OS X). Ils doivent en effet s'ex�cuter, ex�cuter les programmes que vous avez lanc� (dont le navigateur que vous utilisez pour lire cette page), ... Justement, parlons-en de ce navigateur : il est en train de faire plusieurs choses en ce moment m�me , et le tout en m�me temps : il v�rifie les derni�res mises � jour, il entretient des connexions avec diff�rents serveurs pour chaque page que vous lui avez demand� de charger, il est peut-�tre en train de g�rer des t�l�chargements de fichiers, ...

Ce tutoriel traite de la programmation concurrente en Java™. On verra comment faire pour �crire des programmes concurrents corrects. En effet, on verra qu'une fois qu'on fait de la programmation concurrente, de nombreux probl�mes peuvent survenir. Il y a par exemple des blocages total de l'application, ou alors certaines t�ches ne seront jamais ex�cut�es. Il y a �galement des probl�mes de coh�rence de la m�moire partag�e qui peuvent apparaitre.

  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • R�glement
  • Erreur
  • Newsletter