本帖最后由 杨千里 于 2012-9-23 16:59 编辑
class Ticket1 implements Runnable//extends Thread
{
private int tick = 1000;
Object obj = new Object(); // 创建个对象,这对象相当于 “锁”。//Object obj = new Object ()
public void run()
{
while(true)
{
synchronized(obj) //这个锁在这里用,感觉创建个对象有点麻烦,所以上面的 Object obj = new Object();这句话不写,obj直接换成 new Object() 即synchroied(new object())
{ // synchronized(new Object()) 编译没有错误,运行结果有负数? why?难道这样写,锁没有加成功?
if(tick>0)
{
try
{
Thread.sleep(10);
}
catch(Exception e)
{
}
System.out.println(Thread.currentThread().getName()+" sale : " + tick--);
}
}
}
}
}
|