JAVA多线程同步问题
ddpmz 2010-06-22 08:47:19 哪位高手告诉我为什么下面代码运行时只有第一个线程
就是只有售票点A
而B,C没打印
class Demo implements Runnable
{
private int ticket = 10 ;
public void run()
{
while(ticket>0)
{
// 加入同步块
synchronized(this)
{
if(this.ticket>0)
{
try
{
Thread.sleep(100) ;
}
catch (Exception e)
{
}
System.out.println(Thread.currentThread().getName()+" --> 卖票:"+this.ticket--) ;
}
}
}
}
};
public class ThreadDemo15
{
public static void main(String args[])
{
Demo d = new Demo() ;
Thread t1 = new Thread(d,"售票点 A") ;
Thread t2 = new Thread(d,"售票点 B") ;
Thread t3 = new Thread(d,"售票点 C") ;
t1.start() ;
t2.start() ;
t3.start() ;
}
};