US

Objet partagé

Comme on l'a vu au chapitre précédent, chaque thread possède son propre environnement, mais tous les objets créés par le programme se trouvent dans un unique tas. Différents threads vont donc pouvoir se partager un même objet. Il suffit en effet que ces derniers possèdent chacun une référence vers cet objet. Partons d'un exemple pour comprendre le principe d'objet partagé et voir les différents problèmes auxquels il faudra faire attention.

Classe BankAccount

On va définir une classe BankAccount qui représente un compte bancaire. Un tel compte est caractérisé par une somme se trouvant dessus (balance) qu'on peut connaitre en appelant la méthode getBalance. On peut également retirer de l'argent du compte avec la méthode withdraw. Voici le code complet de la classe :