Share on Google+Share on Google+

Bill
Java Multithread
0 Answer(s)      4 years and 6 months ago
Posted in : Java Beginners

Hi All. I am trying to make a program in Java that uses Multithread. That program is about a bank account shared between husband and wife who use debit cards. I wrote the Java program using 2 threads but i am running through java.lang.NullPointerException.

I don't know my mistake, if someone will help I will appreciate it. The underscore has been replaced here by _ Sorry about the inconvenience. Thank you.

Here the program :

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Level;
import java.util.logging.Logger;

// A bank account has a balance that can be changed by deposits and withdrawals.

public class BankAccount {

public double total = 0, amount = 0;

public void withdraw(double amount) {
    total -= amount;
    System.out.println("Amount Withdrawn is " + amount);
}

public void deposit(double amount) {
    total += amount;
    System.out.println("Amount Deposited is " + amount);
}

public double getAccount() {
    System.out.println("Total Amount is " + total);
    return total;

}

}

class WithdrawalRunnable {

private static final Lock lock = new ReentrantLock();
final Condition myCond = lock.newCondition();
BankAccount myAccount;

public void amountWithdrawn(double money_Withdrawn) throws InterruptedException {
    lock.lock();
    try {
        while (money_Withdrawn > myAccount.total) {
            myCond.await();  
            //when the condition is satisfied then :
            myAccount.withdraw(money_Withdrawn);
            myAccount.getAccount();
        }
    } finally {
        lock.unlock();
    }
}

}

class DepositRunnable {

private static final Lock lock = new ReentrantLock();
final Condition myCond = lock.newCondition();
BankAccount myAccount;

public void amountDeposited(double money_deposited) throws InterruptedException {
    lock.lock();
    try {
        myAccount.deposit(money_deposited);
        myAccount.getAccount();
        myCond.signalAll(); 
    } finally {
        lock.unlock();
    }
}

}

class Husband implements Runnable {

DepositRunnable myDeposit;
WithdrawalRunnable myWithdrawal;
double amount_deposit;
double amount_withdraw;

public Husband(double amount_deposit, double amount_withdraw) {
    this.amount_deposit = amount_deposit;
    this.amount_withdraw = amount_withdraw;
}

public void run() {
    try {
        myDeposit.amountDeposited(amount_deposit);
        myWithdrawal.amountWithdrawn(amount_withdraw);
    } catch (InterruptedException ex) {
        Logger.getLogger(Wife.class.getName()).log(Level.SEVERE, null, ex);
    }
}

}

class Wife implements Runnable {

DepositRunnable myDeposit;
WithdrawalRunnable myWithdrawal;
double amount_deposit;
double amount_withdraw;

public Wife(double amount_deposit, double amount_withdraw) {
    this.amount_deposit = amount_deposit;
    this.amount_withdraw = amount_withdraw;
}

public void run() {
    try {
        myDeposit.amountDeposited(amount_deposit);
        myWithdrawal.amountWithdrawn(amount_withdraw);
    } catch (InterruptedException ex) {
        Logger.getLogger(Wife.class.getName()).log(Level.SEVERE, null, ex);
    }

}

}

class RunningThreadTest {

public static void main(String[] args) throws InterruptedException {

    Husband husb = new Husband(100.0, 0.0);
    Wife wif = new Wife(400.0, 0.0);
    Thread thread1 = new Thread(husb);
    Thread thread2 = new Thread(wif);
    thread1.start();
    thread2.start();
}

}

Ads

View Answers









Related Tutorials/Questions & Answers:
Java Multithread
Java Multithread  Hi All. I am trying to make a program in Java that uses Multithread. That program is about a bank account shared between husband and wife who use debit cards. I wrote the Java program using 2 threads but i am
Java MultiThread - Java Beginners
Java MultiThread  what is the meaning of standalone application in multithread.How can we write multi programms in multithread process and execution...."); } } ----------------------------------------------------- Visit for more information. http://www.roseindia.net/java/thread/Java
Advertisements
java multithread - Java Beginners
java multithread  Hi, I have developed one java application.It should be running continuously. Using multithreads how to make the application to run continuously. Could you please help me. Thank you,  Hi Friend
java multithread - Java Beginners
java multithread  Hi, Thanks for your multithreading java code. It helped me a lot. But i have one issue. My code is look like this. public class classname extends Thread { public classname() { super
java multithread - Development process
java multithread  sir i am send it again sir.please reply me sir.Develop multi-threaded echo server and a corresponding GUI client in java.  Multi-threaded ECHO SERVER and GUI client program by Whitman Kumaresh for my
Java MultiThread
Java has multithreading feature. Multithreading feature is given by Thread class and Runnable interface Java Multithreading allows to run multiple tasks(threads) at a time. Java Multi Thread Example public class multi
Multithreading ? - Java Interview Questions
Multithreading ?   Hi Friends, I am new to java , am not clear with Multithreading. Multithread will cause deadlock. We can... program. For read more information on Multithread visit to : http
Java Interview Questions - Page 5
Java Interview Questions - Page 5       Question: How to create multithread in a program... to start the thread. Question: Can Java object be locked down for exclusive
New to Java programming
Programming Multithread Programming Java Applets Java Web Applications...I am new to Java, how I can learn Java programming Language? Java... Application. So, first thing in learning the Java programming language is to learn
Java Exception - Handle Exceptions in Java
Java Exception - Handle Exceptions in Java       What is Exception in Java? How to handle the Exceptions in Java programming language. This section on exception
Java Exception Thread
Java Exception Thread     ... the program. Many Thread run concurrently in the program. Multithread are those...,the thread run concurently,synchronous or asynchronous. Advantage of Multithread
java
java  diff bt core java and java
java
java  what is java
Java
Java   Whether Java is pure object oriented Language
java
java  different between java & core java
java
java  explain technologies are used in java now days and structure java
java
java   why iterator in java if we for loop
JAVA
JAVA  how the name came for java language as "JAVA
java
java  what is java reflection
java
java  is java open source
java
what is the size of array in java ?  what is the size of array in java ? what is the mean of finalize in java
java
java   in java does not pointers concept but what is nullpointers in java?   nullpointer is a runtime Exception
java
java  write a java program using filenotfoundexception
Java
Java  how to draw class diagrams in java
java
java   difference between class and interface
java
java  why multiple inheritance is not possible in java
java
java  explain object oriented concept in java
java
java  is java purely object oriented language
Java
Java   Whether Java is Programming Language or it is SOftware
java
java  what are JAVA applications development tools
java
java  how use java method
Tutorials   
Java Spring Hibernate Struts Training What does core Java include? java What are some way to learn Java quickly? Is it required to learn Java before learning Java Script? Is it necessary to learn java script before learning PHP? Are HTML5 and Java Script boosts Java career? Is Java object oriented? Fingerprint application with Java Uninstall Oracle Virtual Box JSON to HashMap Free Java online Training I want example of Control Statement in Java ANSI Color Codes with Python Create a Program that Calculates Input What is difference between JDK,JRE and JVM? How to see ubuntu version on server? How to get Page Source in Selenium (WebDriver) using Java? The path to the driver executable must be set by the webdriver.gecko.driver system property parse data from a link in java Java Program Qns using BlueJ How to fix HAX Kernel Module Is Not Installed error? Installing Audacity Looking for code Logic to check track changes & Coments in MSWord, MSWordx, MSExcel, MSExcelx is ON/OFF Installing JDK on Mac SAX Parser exception ERROR 601 (42P00): Syntax error. Encountered Thread java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory How to install Ubuntu 16.04 LTS? HttpServletRequest cannot be resolved to a type in eclipse - Solved Unhandled event loop exception GC overhead limit exceeded Spring Data jpa with apache phoenix Caused by: java.lang.IllegalArgumentException: Not a host:port pair: PBUF o.a.h.h.z.RecoverableZooKeeper - Possibly transient ZooKeeper, quorum= com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager class not found com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager not found How to download and install Java 8 on Windows? How to uninstall JDK 7? How to install gtk-doc-tools package in Ubuntu? How to install Oracle JDK 8 on Ubuntu? ejabberd_ctl.beam not found - Solved How to convert date to UTC format in Java? How to install autoconf, automake and libtool in Ubuntu 15.10? How to convert current date to mm dd yyyy format in Java? How to convert current date to dd mm yyyy format in Java? How to stop window closing in "internalFrameClosing" event. How to find list of all index in Neo4j? neo4j-server.properties file location SASLError using PLAIN: not-authorized how to convert war file into .exe file using java code

Ads

 
Advertisement null

Ads