public class TicketSystem 
{
public static void main(String[] args) 
{
SellTicket st = new SellTicket();
new Thread(st).start();
new Thread(st).start();
new Thread(st).start();
new Thread(st).start();
}
}class SellTicket implements Runnable
{
int ticket = 0;
Object obj = new Object();
public void run()
{
while(ticket < 100)
{
synchronized(this)
{
//if(ticket < 100)
//{
try{
Thread.sleep(10);
}catch(Exception e)
{
e.printStackTrace();
}

System.out.println(Thread.currentThread().getName()+
"  sell the "+ticket+"th ticket");
ticket++;
//}
//else
//break;
}
//sell();
}

}
}
为什么打印的票数是102张

public class TicketSystem 
{
public static void main(String[] args) 
{
SellTicket st = new SellTicket();
new Thread(st).start();
new Thread(st).start();
new Thread(st).start();
new Thread(st).start();
}
}class SellTicket implements Runnable
{
int ticket = 0;
Object obj = new Object();
public void run()
{
while(true)
{
synchronized(this)
{
if(ticket < 100)
{
try{
Thread.sleep(10);
}catch(Exception e)
{
e.printStackTrace();
}

System.out.println(Thread.currentThread().getName()+
"  sell the "+ticket+"th ticket");
ticket++;
}
//else
//break;
}
//sell();
}

}
}
结果是正确的?