CS506 Web Design and Development GDB Spring 2020 Solution & Discussion
ATM (Automated Teller Machine) machines are electronic outlets that allow customers to do their basic transactions without the help of bank’s representative. ATM machines facilitate customers to withdraw cash, pay bills and transfer amount etc. at any time. These machines are synchronized (i.e. can perform transactions in parallel by sharing resources), as soon as a customer withdraws amount, the remaining balance is updated. Therefore, concurrency (i.e. capability to perform more than one task at the same time) is involved in ATM transactions.
Being a Java developer what do you think, "Would multi-threading play a vital role in maintaining concurrency for efficient and fast transactions of ATM or will slow down the ATM services by making it more complicated?”.
CS506 GDB Solution idea:
Being a java developer I would state that performance is not the main challenge of an ATM nor is multi-threading. Robustness and provable correctness is of greater importance and those are much easier to achieve using a single –threaded solution.