aakash2310

BankThread Updated

Feb 18th, 2022
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. class BankThread
  2. {
  3. public static void main(String[] args)
  4. {
  5. Bank obj = new Bank();
  6. Withdrwal t1 = new Withdrwal(obj,"A1",5000); //5000
  7. Deposit t2 = new Deposit(obj,"A2",2000); // 7000
  8. Withdrwal t3 = new Withdrwal(obj,"A3",8000); // error
  9. Deposit t4 = new Deposit(obj,"A4",1000); // 8000
  10. Withdrwal t5 = new Withdrwal(obj,"A5",8000); // 0
  11. Deposit t6 = new Deposit(obj,"A6",2000); // 2000
  12. try
  13. {
  14. t1.start();
  15. t1.join();
  16. t2.start();
  17. t2.join();
  18. t3.start();
  19. t3.join();
  20. t4.start();
  21. t4.join();
  22. t5.start();
  23. t5.join();
  24. t6.start();
  25. t6.join();
  26. }
  27. catch(Exception e){}
  28. }
  29. }
  30. class Bank
  31. {
  32. int balance = 10000;
  33. synchronized void withdrawn(String name,int withdrawal)
  34. {
  35. if (balance >= withdrawal)
  36. {
  37. System.out.println(name + " withdrawn " + withdrawal);
  38. balance = balance - withdrawal;
  39. System.out.println("Balance after withdrawal: " + balance);
  40. try
  41. {
  42. Thread.sleep(1000);
  43. }
  44. catch (Exception e) { }
  45.  
  46. }
  47. else
  48. {
  49. System.out.println(name + " you can not withdraw " + withdrawal);
  50. System.out.println("your balance is: " + balance);
  51. try
  52. {
  53. Thread.sleep(1000);
  54. }
  55. catch (Exception e) { }
  56. }
  57. }
  58. synchronized void deposit(String name, int deposit)
  59. {
  60. System.out.println(name + " deposited " + deposit);
  61. balance = balance + deposit;
  62. System.out.println("Balance after deposit: " + balance);
  63. try
  64. {
  65. Thread.sleep(1000);
  66. }
  67. catch (Exception e) { }
  68. }
  69. }
  70. class Withdrwal extends Thread
  71. {
  72. Bank object;
  73. String name;
  74. int amt;
  75.  
  76. Withdrwal(Bank ob, String name,int money)
  77. {
  78. this.object = ob;
  79. this.name = name;
  80. this.amt = money;
  81. }
  82. public void run()
  83. {
  84. object.withdrawn(name,amt);
  85. }
  86. }
  87. class Deposit extends Thread
  88. {
  89. Bank object;
  90. String name;
  91. int amt;
  92. Deposit(Bank ob, String name,int money)
  93. {
  94. this.object = ob;
  95. this.name = name;
  96. this.amt = money;
  97. }
  98. public void run()
  99. {
  100. object.deposit(name,amt);
  101. }
  102. }
  103.  
Advertisement
Add Comment
Please, Sign In to add comment