Les exceptions, les collections et les threads
Implémenter une banque. Une banque est composée d’un ensemble de comptes de
banques. Les opérations bancaires disponibles sur un compte sont : dépôt, retrait et
virement. Une banque reçoit des séries de transactions bancaires à traiter en bloc. Une
suite d’opérations peut être par exemple
[(dépôt, C1, 100), (retrait, C2, 200), (virement, C1, C2, 300)]
La banque lance alors un thread indépendant responsable du traitement de chaque série
de transactions.
Les contraintes suivantes doivent être respectées :
A leur création, le solde des comptes est 100.
Un solde ne doit jamais être négatif.
On ne peut pas déposer/retirer/virer un montant négatif ou supérieur à 1000
Avant d’effectuer une série d’opérations, il faut d’abord bloquer en lecture tous
les comptes impliqués.
Si une opération échoue, toutes les opérations précédentes de la suite de
transactions doivent être défaites.
Quoiqu’il arrive lors du traitement d’une série de transactions, les comptes
doivent être débloqués.
Si une ou plusieurs opérations échouent, la banque doit être informé de
l’opération fautive et de la ou des raisons de l’échec.
Un thread doit toujours se terminer que le traitement des transactions se passe
bien ou non et quelque soit l’erreur.
Pour réaliser ce programme, les éléments suivants devraient être utiles
http://java.sun.com/docs/books/tutorial/collections/index.html
http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html
http://java.sun.com/docs/books/tutorial/essential/threads/index.html