class CBank
{
private static int sum=0;
public static void add(int n)
{
int tmp=sum;
tmp=tmp+n;
try
{
Thread.sleep((int)(1000*Math.random()));
}
catch(InterruptedException e){}
sum=tmp;
System.out.println("sum= "+sum);
}
}
class CCustomer extends Thread
{
public void run()
{
for(int i=1;i<3;i++)
CBank.add(100);
}
}
public class app15_7
{
public static void main(String args[])
{
CCustomer c1=new CCustomer();
CCustomer c2=new CCustomer();
c1.start();
c2.start();
System.out.println("");
}
}
我得到的结果是
sum= 100
sum= 100
sum= 200
sum= 200
但书上说是
sum= 100
sum= 100
sum= 200
sum= 300
sum= 200
sum= 300
求指导,是哪里错了?
{
private static int sum=0;
public static void add(int n)
{
int tmp=sum;
tmp=tmp+n;
try
{
Thread.sleep((int)(1000*Math.random()));
}
catch(InterruptedException e){}
sum=tmp;
System.out.println("sum= "+sum);
}
}
class CCustomer extends Thread
{
public void run()
{
for(int i=1;i<3;i++)
CBank.add(100);
}
}
public class app15_7
{
public static void main(String args[])
{
CCustomer c1=new CCustomer();
CCustomer c2=new CCustomer();
c1.start();
c2.start();
System.out.println("");
}
}
我得到的结果是
sum= 100
sum= 100
sum= 200
sum= 200
但书上说是
sum= 100
sum= 100
sum= 200
sum= 300
sum= 200
sum= 300
求指导,是哪里错了?