黑马程序员技术交流社区

标题: 这是为什么!?求真相、、、 [打印本页]

作者: 黑马吕世成    时间: 2012-10-28 05:57
标题: 这是为什么!?求真相、、、
本帖最后由 黑马吕世成 于 2012-10-28 21:30 编辑

class TicketWindow implements Runnable//extends Thread
{
            int ticket = 10;
             public void run()
             {        
                 while(true)
                 {
                     if(ticket > 0)
                     {
                         //  try{Thread.sleep(10);}catch(Exception e){}
                     
                           System.out.println(Thread.currentThread().getName()+" window : is saling "+ticket--);  
                   }
                 }                                    
             }
}

class TicketsSale
{
            public static void main(String[] args)
            {
                    TicketWindow t = new TicketWindow();
                    
                    new Thread(t).start();
                    new Thread(t).start();
                    new Thread(t).start();
               
            }   



运行之后的结果见图片!为什么ticket--显示的顺序不是10 9 8 7、、、、这样倒序输出的???




360软件小助手截图20121028055057.jpg (55.15 KB, 下载次数: 17)

360软件小助手截图20121028055057.jpg

作者: 徐升兴    时间: 2012-10-28 07:43
lz你好,这个程序的打印结果是随机的,无序的,你把ticket的数值设置的较大一点,或者多运行几次就可以看出来了,另外,当以程序中有多个类的时候,主类最好使用public修饰。
作者: 崔政    时间: 2012-10-28 11:00
这个视频中提到过的,卖100张票,有时候不是按顺序,因为是多线程,很快,票已经卖出,但是还没来得及打印。就是这样
作者: 黑马吕世成    时间: 2012-10-28 20:40
本帖最后由 黑马吕世成 于 2012-10-28 21:30 编辑
徐升兴 发表于 2012-10-28 07:43
lz你好,这个程序的打印结果是随机的,无序的,你把ticket的数值设置的较大一点,或者多运行几次就可以看出 ...

嗯,暂且只能理解为打印的无序性。别的我也想不到了。不过还是谢谢亲们!O(∩_∩)O





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2