关于多线程模拟售票的一个小程序。同时开四个线程相当于售票时的四个售票窗口,共同出售20张票,代码编写如下:
class Ticket implements Runnable//定义一个实现Runnable借口的类,包含多线程要实现的代码
{
private int ticket=20;
public void run()
{
while(true)
{
if (ticket>0)
{
System.out.println(Thread.currentThread().getName()+"sold ticket:"+ticket);
ticket--;
}
}
}
}
class TicketThread
{
public static void main(String[] args)
{
Ticket t = new Ticket();//创建并实例化一个Ticket类
//创建四个线程
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
运行结果如图所示出现了多个编号为20的票,当把ticket--与输出语句System.out.println(Thread.currentThread().getName()+"sold ticket:"+ticket);合并为System.out.println(Thread.currentThread().getName()+"sold ticket:"+ticket--);后就不再出现了,为什么会出现这种情况;另外有的书上说类继承Thread并不能实现资源共享,为什么还有用继承Thread来实现多线程的方法呢?
|
|