本帖最后由 王雷1 于 2013-11-21 10:22 编辑
为什么只能用while循环,for循环就出错,还是 我写的有毛病
class chezan implements Runnable
{
int piao=100;
int sum;
public void add(int x)
{
sum=sum+x;
System.out.println(sum);
}
public void run()
{
for(this.piao=100;this.piao>0;this.piao--)
{
synchronized(this)
{
System.out.println(Thread.currentThread().getName()+"火车票"+piao);
add(1);
}
}
}
}
class ti//正好是103张,好几次都是这个结果
{//如果不是正好的103张我还能理解为线程,但是好几次都是103张
public static void main(String[] args)
{
chezan t=new chezan();
Thread x1=new Thread(t);
Thread x2=new Thread(t);
Thread x3=new Thread(t);
Thread x4=new Thread(t);
x1.start();
x2.start();
x3.start();
x4.start();
}
}
//只是循环不同,为什么效果是不一样的
|