Witam, czytam o synchronizacji i naszła mnie myśl na mały program.
Otóż załóżmy że mamy klasę
Account:
- saldo
- getSaldo()
- withdraw(amount)
- add(amount)
BankOperation:
+transfer(Account from,Account to,double amount)
I będziemy z nich korzystać w taki sposób, że na cały system mamy wiele obiektów Account i jeden obiekt typu BankOperation, który zajmuje się przelewaniem środków.
Załóżmy, ze mamy interfejs który wywołuje zdarzenia przelewania pieniędzy pomiędzy danymi kontami. I teraz jeżeli ktoś by wywołał operacje (A,B) i w tym samym czasie ktoś inny (B,C) to następuje dostęp do B przez 2 wątki. I tu trzeba zastosować blokowanie,warunki -> synchronizacji. I tu pojawia się moje pytanie, czy wystarczy zalożyć synchro na metode BankOperation:transfer?