黑马程序员技术交流社区
标题:
你真的会了吗?
[打印本页]
作者:
邓超军
时间:
2012-7-25 05:47
标题:
你真的会了吗?
昨天看毕老师讲多线程的教学视频,听完了一个,觉得自己听懂了,学会了,于是就按照毕老师讲课的思路,自己重新写了卖票的代码,代码如下:
class Ticket implements Runnable
{
private int num=400;
public void run()
{
Object obj=new Object();
while(true)
{
synchronized(obj)
{
if(num>0)
{
try
{
Thread.sleep(8);
}catch(Exception e){}
System.out.println(Thread.currentThread().getName()+"....sale : "+ num--);
}
}
}
}
}
复制代码
跟毕老师的代码相比,看上去一样。接下来运行了一下,结果却让人大跌眼镜:竟然出现了-1,-2!这怎么可能?我是按照毕老师的视频里面的思路写的呀!问题究竟在哪里?我们把毕老师的代码拿出来,比一比:
class Ticket implements Runnable
{
private int tick = 1000;
Object obj = new Object();
public void run()
{
while(true)
{
synchronized(obj)
{
if(tick>0)
{
//try{Thread.sleep(10);}catch(Exception e){}
System.out.println(Thread.currentThread().getName()+"....sale : "+ tick--);
}
}
}
}
}
复制代码
发现问题了吧!是的,就一句代码的位置不一样。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