一个线程的问题,请大家帮忙

时间:2008-06-10 08:34:35   来源:论坛整理  作者:  编辑:chinaitzhe
原代码是:
public class TextThread
{
public static void main(String args[])
{
TT tt1 = new TT("k93",10);
Thread t1 = new Thread(tt1,"小红1");
Thread t2 = new Thread(tt1,"小花2");
t1.start();
t2.start();
}
}


class TT implements Runnable
{
String checi;// get propert
int count;
int i= 1
public TT(String a,int b)
{
this.checi = a;
this.count = b;
}

public void run()// run time
{

for( ;i <10;i )

System.out.println(Thread.currentThread().getName() " 正在出售" checi "号列车的票,票号为" i);


System.out.println(Thread.currentThread().getName() "站点的车票己售完毕!");
}
}
------------------------------------------------------------------------
结果是
小红1 正在出售k93号列车的票,票号为0
小花2 正在出售k93号列车的票,票号为0
小红1 正在出售k93号列车的票,票号为1
小花2 正在出售k93号列车的票,票号为2
小红1 正在出售k93号列车的票,票号为3
小花2 正在出售k93号列车的票,票号为4
小红1 正在出售k93号列车的票,票号为5
小花2 正在出售k93号列车的票,票号为6
小红1 正在出售k93号列车的票,票号为7
小花2 正在出售k93号列车的票,票号为8
小红1 正在出售k93号列车的票,票号为9
小花2站点的车票己售完毕!
小红1站点的车票己售完毕!

---------------------------------------------------------------
问题是:为什么票号为0的是两次呀?????


网友回复:我这运行结果是
小红1 正在出售k93号列车的票,票号为1
小红1 正在出售k93号列车的票,票号为2
小红1 正在出售k93号列车的票,票号为3
小红1 正在出售k93号列车的票,票号为4
小红1 正在出售k93号列车的票,票号为5
小红1 正在出售k93号列车的票,票号为6
小红1 正在出售k93号列车的票,票号为7
小红1 正在出售k93号列车的票,票号为8
小红1 正在出售k93号列车的票,票号为9
小红1站点的车票己售完毕!
小花2 正在出售k93号列车的票,票号为1
小花2 正在出售k93号列车的票,票号为2
小花2 正在出售k93号列车的票,票号为3
小花2 正在出售k93号列车的票,票号为4
小花2 正在出售k93号列车的票,票号为5
小花2 正在出售k93号列车的票,票号为6
小花2 正在出售k93号列车的票,票号为7
小花2 正在出售k93号列车的票,票号为8
小花2 正在出售k93号列车的票,票号为9
小花2站点的车票己售完毕!

网友回复:你的源代码应该有误,销售完count应该减一,count为共享变量,轻易出现同步问题,加上synchronized要害字既可以了
网友回复:楼主的for语句也写得太有创意了吧!
for( ;i <10;i )
我在我机子上把前面的int i=1;
放在for(int i=1;i <10;i )里面的运行结果是:
小红1 正在出售k93号列车的票,票号为1
小红1 正在出售k93号列车的票,票号为2
小红1 正在出售k93号列车的票,票号为3
小红1 正在出售k93号列车的票,票号为4
小红1 正在出售k93号列车的票,票号为5
小红1 正在出售k93号列车的票,票号为6
小红1 正在出售k93号列车的票,票号为7
小红1 正在出售k93号列车的票,票号为8
小红1 正在出售k93号列车的票,票号为9
小红1站点的车票己售完毕!
小花2 正在出售k93号列车的票,票号为1
小花2 正在出售k93号列车的票,票号为2
小花2 正在出售k93号列车的票,票号为3
小花2 正在出售k93号列车的票,票号为4
小花2 正在出售k93号列车的票,票号为5
小花2 正在出售k93号列车的票,票号为6
小花2 正在出售k93号列车的票,票号为7
小花2 正在出售k93号列车的票,票号为8
小花2 正在出售k93号列车的票,票号为9
小花2站点的车票己售完毕!

网友回复:小红1 正在出售k93号列车的票,票号为1
小红1 正在出售k93号列车的票,票号为2
小红1 正在出售k93号列车的票,票号为3
小红1 正在出售k93号列车的票,票号为4
小红1 正在出售k93号列车的票,票号为5
小红1 正在出售k93号列车的票,票号为6
小红1 正在出售k93号列车的票,票号为7
小红1 正在出售k93号列车的票,票号为8
小红1 正在出售k93号列车的票,票号为9
小红1站点的车票己售完毕!
小花2站点的车票己售完毕!
这是我的结果
楼上说的对,加个synchronized

网友回复:恩,楼上说的太对了,可能就是这个原因,谢谢2楼了...
网友回复:不过怎么都是小红的呀,小花没有参与呀???
关键字:一个,线程,问题,帮忙,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面