1、设有一个银行账户,里面有2000元钱。该账户归tom和jack两个人共同所有。每个人每 次可以取100元钱。编写一个类BankAccount表示银行账户,void withdraw(int count)方法表 示取钱,int getbalance()方法用来获取银行账户余额。创建两个线程分别表示tom和jack两 个人。要求输出取钱的过程,以及每次取钱后的账户余额。 为了更好的模拟多线程的交错运行效果,可以每次取钱之前让线程暂停20毫秒。
用Runnable接口实现多线程:
package project11;
class BankAccount implements Runnable{
int money = 2000;
int getMoney() {
money = money -100;
return money;
}
public void run() {
while(this.money>100) {
synchronized (this) {
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(Thread.currentThread().getName()+" withdraw 100 balance left "+getMoney());
}
}
public static void main (String []args) {
BankAccount ba = new BankAccount();
Thread t1 = new Thread(ba);
t1.setName("Tom");
Thread t2 = new Thread(ba);
t2