diff --git a/OOP/Java/Lab/Practice_question.java b/OOP/Java/Lab/Practice_question.java deleted file mode 100644 index 4bca7d4..0000000 --- a/OOP/Java/Lab/Practice_question.java +++ /dev/null @@ -1,126 +0,0 @@ -// Online Java Compiler -/*interface product -{ - void buy(int num); -} -class genproduct implements product -{ - int quan; - genproduct(int n) - { - quan=n; - } - public synchronized void buy(int num) - { - if(quan extends Thread -{ - T obj; - int num; - inventory(T obj,int num) - { - this.obj=obj; - this.num=num; - } - public void run() - { - obj.buy(num); - } -} -class Mainclass -{ - public static void main(String[] args) { - genproduct buyer1 =new genproduct(15); - inventory t1=new inventory(buyer1,2); - inventory t2=new inventory(buyer1,5); - // obj.start(); - t1.start(); - t2.start(); - - - } -}*/ -class BankAccount { - private int balance; - private int accountNumber; - - public BankAccount(int accountNumber, int initialBalance) { - this.accountNumber = accountNumber; - this.balance = initialBalance; - } - - public synchronized void deposit(int amount) { - balance += amount; - System.out.println("Deposited: " + amount); - System.out.println("Current Balance after Deposit: " + balance); - } - - public synchronized void withdraw(int amount) { - if (balance >= amount) { - balance -= amount; - System.out.println("Withdrawn: " + amount); - System.out.println("Current Balance after Withdrawal: " + balance); - } else { - System.out.println("Insufficient funds for withdrawal."); - } - } -} - -class TransactionThread extends Thread { - private BankAccount account; - private boolean isDeposit; - private int amount; - - public TransactionThread(BankAccount account, boolean isDeposit, int amount) { - this.account = account; - this.isDeposit = isDeposit; - this.amount = amount; - } - - public void run() { - if (isDeposit) { - account.deposit(amount); - } else { - account.withdraw(amount); - } - } -} - -class Practice_question{ - public static void main(String[] args) { - BankAccount account = new BankAccount(12345, 1000); - - // Create multiple threads for deposits and withdrawals - TransactionThread depositThread1 = new TransactionThread(account, true, 500); - TransactionThread withdrawThread1 = new TransactionThread(account, false, 200); - TransactionThread depositThread2 = new TransactionThread(account, true, 100); - TransactionThread withdrawThread2 = new TransactionThread(account, false, 300); - - // Start the threads - depositThread1.start(); - withdrawThread1.start(); - depositThread2.start(); - withdrawThread2.start(); - - // Wait for all threads to finish - try { - depositThread1.join(); - withdrawThread1.join(); - depositThread2.join(); - withdrawThread2.join(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } -}