编写两个线程,具有共享存储单元,运行观察结果
public class Main {
public static void main(String[] args) {
String s1 = "会计",s2 = "出纳员";
Bank bank = new Bank(s1,s2);
Thread zhang ,wang;
zhang = new Thread(bank);
wang = new Thread(bank);
zhang.setName(s1);
wang.setName(s2);
bank.setMoney(150);
zhang.start();
wang.start();
}
}
class Bank implements Runnable{
private int money = 0;
String name1;
String name2;
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
Bank(String s1,String s2){
name1 = s1;
name2 = s2;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
money-=10;
if(Thread.currentThread().getName().equals(name1)){
System.out.println("I am "+name1+",now I have "+money+" yuan");
if(money<=100){
System.out.println(name1+"has been death");
return ;
}
}
else
if(Thread.currentThread().getName().equals(name2)){
System.out.println("I am "+name2+",now I have "+money+" yuan");
if(money<=60){
System.out.println(name2+"has been death");
return ;
}
}
try {
Thread.sleep(800);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}