java线程的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 11:09:51
public class Test
{
public static void main(String[] args)
{
Account ac=new Account(123456789,"Tom",0.0);
System.out.println(ac.toString()+": 存取款操作如下");
Thread p=new Thread(new GetMoney(ac));
Thread c=new Thread(new SaveMoney(ac));
p.start();
c.start();
}
}
class Account
{
String name;
long id;
private double sum,saveMoney,getMoney;
public Account(long id,String name,double sum)
{
this.id=id;this.name=name;this.sum=sum;
}

public synchronized double get(double d)//
{
while(sum<50000)
{
try
{
this.wait();
}
catch (InterruptedException e)
{
}
}
this.notify();
getMoney=d;
sum-=getMoney;
return getMoney;
}
public synchronized double save(double d)//同步方法,给sum加锁

{
while(sum>=1250

看了一下,关于这个同步,你没处理到位,根本就不行,可以再查查资料!我的线程方面也学的比较差,一起进步吧!

逻辑处理的不对,
用synchronized 标示的函数应该指多个线程调用同一个函数。而不是两个。get()和save()是两个函数啊。