Java存钱与取钱
package pukepai;
public class test1
{
public static void main(String agrs[])
{
Bank s1=new Bank();
Thread accountant,cashier;
accountant =new Thread(s1);
cashier=new Thread(s1);
accountant.setName("accountant");
cashier.setName("cashier");
accountant.start();
cashier.start();
}
}
class Bank implements Runnable
{
int money;
public Bank()
{
money=0;
}
public void run()
{
while(true)
{
if(Thread.currentThread().getName().equals("accountant"))
{
saveOrTake(100);
}
else if(Thread.currentThread().getName().equals("cashier"))
{
saveOrTake(100);
}
}
}
public synchronized void saveOrTake(int amount)
{
if(Thread.currentThread().getName().equals("accountant"))
{
money=money+amount;
System.out.println("会计存入"+amount+"万元,账上还有"+money+"万元");
try
{
Thread.sleep(800);
} catch (InterruptedException e)
{
}
}
else if(Thread.currentThread().getName().equals("cashier"))
{
money=money-amount;
System.out.println("出纳取出"+amount+"万元,账上还有"+money+"万元");
try
{
Thread.sleep(800);
} catch (InterruptedException e)
{
}
}
}
}