elltyl325

BankAccountRescuer

Sep 21st, 2020
1,275
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. package threads;
  3.  
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6.  
  7. public class BankAccountRescuer extends BankAccountUser{
  8.  
  9.     public BankAccountRescuer(String name, BankAccount account, int[] transactions, BankAccountUser[] user) {
  10.         super(name, account, transactions = null);
  11.         this.users = user;
  12.        
  13.  
  14.     }
  15.    
  16.     @Override
  17.     public void run() {
  18.         while(allFinished() != true){
  19.             if(allWaiting() == true){
  20.                 getAccount().deposit(100, this);
  21.             }
  22.            
  23.              try {
  24.                 Thread.sleep((int)(Math.random() * 100));
  25.             } catch (InterruptedException ex) {
  26.                 Logger.getLogger(BankAccountUser.class.getName()).log(Level.SEVERE, null, ex);
  27.             }
  28.         }    
  29.     }
  30.    
  31.     private boolean allFinished(){
  32.         int x = 0;
  33.         for (BankAccountUser user : users) {
  34.             if (user.getTransactionsRemaining() == 1) {
  35.                 x++;
  36.             }
  37.         }
  38.         if(x == users.length) return true;
  39.         else return false;
  40.     }
  41.    
  42.     private boolean allWaiting(){
  43.         int x  = 0;
  44.         for (BankAccountUser user : users) {
  45.             if (user.isWaiting() == true) {
  46.                 x++;
  47.             }
  48.         }
  49.         if(x == users.length) return true;
  50.         else return false;
  51.     }
  52.    
  53.    
  54.    //private BankAccount account;
  55.    private final BankAccountUser[] users;
  56. }
  57.  
  58.  
RAW Paste Data