黑马程序员技术交流社区

标题: 你真的会了吗? [打印本页]

作者: 邓超军    时间: 2012-7-25 05:47
标题: 你真的会了吗?
      昨天看毕老师讲多线程的教学视频,听完了一个,觉得自己听懂了,学会了,于是就按照毕老师讲课的思路,自己重新写了卖票的代码,代码如下:
  1. class Ticket implements Runnable
  2. {
  3.         private int num=400;
  4.         public void run()
  5.         {
  6.                 Object obj=new Object();
  7.                
  8.                 while(true)
  9.                 {  
  10.                         synchronized(obj)
  11.                     {
  12.                                 if(num>0)
  13.                                 {
  14.                                         try
  15.                                         {
  16.                                                 Thread.sleep(8);
  17.                                         }catch(Exception e){}
  18.                                         System.out.println(Thread.currentThread().getName()+"....sale : "+ num--);
  19.                                 }
  20.                         }
  21.                 }
  22.         }
  23. }
复制代码
跟毕老师的代码相比,看上去一样。接下来运行了一下,结果却让人大跌眼镜:竟然出现了-1,-2!这怎么可能?我是按照毕老师的视频里面的思路写的呀!问题究竟在哪里?我们把毕老师的代码拿出来,比一比:
  1. class Ticket implements Runnable
  2. {
  3.         private  int tick = 1000;
  4.         Object obj = new Object();
  5.         public void run()
  6.         {
  7.                 while(true)
  8.                 {
  9.                         synchronized(obj)
  10.                         {
  11.                                 if(tick>0)
  12.                                 {
  13.                                         //try{Thread.sleep(10);}catch(Exception e){}
  14.                                         System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--);
  15.                                 }
  16.                         }
  17.                 }
  18.         }
  19. }
复制代码
发现问题了吧!是的,就一句代码的位置不一样。99.9%一样,可是就那0.1%的不一样,结果相差悬殊!

这是我们学习最爱犯的一个毛病!你真的会了吗?不要以为自己听懂了,自己就学会了!只有你亲自动手去写了,才知道你是否真的会了!放下我们那颗骄傲的心吧!动动我们那双懒惰的手吧!让我们做一个“真的会了”的一个人!
作者: 侯宪博    时间: 2012-7-25 06:07
顶!!!学习编程,切忌眼高手低。。。
作者: 李志广    时间: 2012-7-25 08:03
顶起来!学习决不能浮躁啊!
作者: 黑马李文    时间: 2012-7-25 09:12
学习决不能浮躁啊




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