写一个卖票的程序。
1) 写一个类,该类实现了Runnable接口。有一个私有类型的int型的参数:tickets。票
的总数,为100,完成run方法,输出结果的格式如下:
2) 当前窗口为:窗口a ,剩余的票数为:19,其中窗口a为线程的名称。 3) 开启四个卖票窗口(起四个线程),同时执行卖票的程序。
public class SellTicketDemo { public static void main(String[] args) { SellTicket st = new SellTicket(new Ticket()); new Thread(st,"窗口1").start(); new Thread(st,"窗口2").start(); new Thread(st,"窗口3").start(); new Thread(st,"窗口4").start();
}
}
class SellTicket implements Runnable { private Ticket t;
黑马程序员入学面试复习
public SellTicket(Ticket t) { this.t = t;
}
@Override public void run() { while (t.getTickets() > 0) { t.sellTicket(new Random().nextInt(5) + 1);
}
}
} //车票类 class Ticket { private int tickets = 100;//车票的整数是100张 public int getTickets() {//获取车票的余数 return tickets;
}
public synchronized void sellTicket(int num) {//售票 if (tickets >= num) { try { Thread.sleep(100); } catch (InterruptedException e) {
e.printStackTrace();
}
tickets -= num;
System.out.println(Thread.currentThread().getName() + "卖出" + num
+ "张票,余票为:" + tickets); } else {
try { Thread.sleep(100); } catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("余票不足");
}
}
} |
|