packagesocket;classSellThreadimplementsRunnable{privateintnumber;SellThread(){number=10;}publicvoidrun(){while(number>0){System.out.println("第"+number+"个人在"+Thread.cu...
package socket;
class SellThread implements Runnable
{
private int number;
SellThread()
{
number=10;
}
public void run()
{
while(number>0)
{
System.out.println("第"+number+"个人在"+Thread.currentThread().getName()+"买票");
number--;
}
}
}
public class TicketsSystem
{
public static void main(String[] args)
{
SellThread st=new SellThread();
Thread th1=new Thread(st);
th1.start();
Thread th2=new Thread(st);
th2.start();
Thread th3=new Thread(st);
th3.start();
}
}
输出不是想要的结果啊?输出如下:
第10个人在Thread-0买票
第9个人在Thread-0买票
第8个人在Thread-0买票
第7个人在Thread-0买票
第6个人在Thread-0买票
第5个人在Thread-0买票
第4个人在Thread-0买票
第3个人在Thread-0买票
第2个人在Thread-0买票
第1个人在Thread-0买票
第10个人在Thread-1买票
第-1个人在Thread-2买票
问题一:
线程执行的次数不对,应该10次,结果12次
问题二:
总是Thread-0在执行,Thread-1,Thread-2没有执行。
public void run()增加同步后为public synchronized void run()
Thread-1,Thread-2还是没有执行
展开