###前提・実現したいこと
Javaを用いて、二人(husbandとwife)が100円の出入金を繰り返すプログラムを2つのスレッドを使ってつくりたいのですが、「Thread[Thread main]が出金or入金されました。」という実行表示を
husbandが100円入金しました。
husbandが100円出金しました。
wifeが100円入金しました。
wifeが100円出金しました。
と表示されるようなプログラムにするためには、Accountクラスをどう処理したらよろしいでしょうか。
教科書に沿ってやっていてもなかなかわからないので、
ぜひよろしくお願いします。
できるだけ具体的に示してもらえると助かります。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
lang
1package thread; 2 3public class Account{ 4 5 private int balance = 0; 6 public void deposit(int money){ 7 int currentBalance = balance; 8 System.out.println(Thread.currentThread()+"が入金されました。"); 9 } 10 public void withdraw(int money){ 11 balance += money; 12 System.out.println(Thread.currentThread()+"が出金されました。"); 13 14 15 } 16 17}
lang
1package thread; 2 3public class User extends Thread { 4 Account account; 5 public User (Account account){ 6 this.account = account; 7 } 8 @Override 9 public void run(){ 10 while(true){ 11 account.deposit(100); 12 try { 13 Thread.sleep((long)Math.random()*1000000000); 14 } catch (InterruptedException e) { 15 // TODO 自動生成された catch ブロック 16 e.printStackTrace(); 17 } 18 account.withdraw(-100); 19 try { 20 Thread.sleep((long)Math.random()*1000000000); 21 } catch (InterruptedException e) { 22 // TODO 自動生成された catch ブロック 23 e.printStackTrace(); 24 } 25 } 26 } 27 public static void main(String[] args) { 28 Account account = new Account(); 29 User husband = new User(account); 30 User wife = new User(account); 31 husband.start(); 32 wife.start(); 33 34 35 } 36 37} 38
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/09 12:10