class sellTicket extends Thread
{
private static int tick=100;
public void run()
{
Object obj=new Object();
while(true)
{
synchronized(obj)
{
if(tick>0)
{//像毕老师说的,当Thread-0进来时,其他的线程就进不来了.依次类推
try{Thread.sleep(10);} catch(Exception e){}//也就是说这种情况下不可能出现0,-1,-2的情况.
//但是执行到这句话时候,还是出现了0,-1的情况.把这句去掉就正确了 这是为什么啊?
System.out.println(getName()+" "+tick--);
}
}
}
}
}
class ThreadTest2
{
public static void main(String[] args)
{
sellTicket st=new sellTicket();
sellTicket st2=new sellTicket();
sellTicket st3=new sellTicket();
st.start();
st2.start();
st3.start();
}
}
|