本帖最后由 李志广 于 2012-8-8 00:49 编辑
class Ticket implements Runnable
{
private int ticket=100;
public void run()
{
while(true)
{
if(ticket>0)
{
System.out.println(Thread.currentThread().getName()+"ticket:"+ticket--);
}
}
}
}
class TicketDemo2
{
public static void main(String[] args)
{
Ticket t=new Ticket();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
在毕老师讲解多线程买票时,在运用继承Thread类和实现Runnable接口做为比较,但是有一些问题还是不是太明白。
为什么实现Runnable接口时,ticket就变成了共享数据呢?还有在判断循环条件时为什么一定要加上while语句作为条件呢?
在本例中将while去掉,为什么不能打印出正确的结果?去掉while语句,if条件不也可以作为循环条件的判断吗?
|