实验题目
分析
哦吼,这次的实验题目是一道非常经典的多线程买票问题。题目要求我们创建5个线程来模拟卖票,当然这其中就包含多线程存在也就是我们要解决的问题,重复卖票和超额卖票。即多个窗口卖出同一张票以及窗口卖出非正数编号的票。
不过这个问题可以先放一下,我们先来创建基础的线程模型,并在主方法中创建五个线程让他们跑起来;
话不多说,上代码。
public class Ticket {
public static void main(String[] args) {
for(int i = 1;i <= 5;i++) {
//创建5个线程并启动他们
//注意一定要使用Thread类创建线程并使用start方法启动
//而不是直接创建TicketSeller对象调用run方法!!!!!!
new Thread(new TicketSeller(i)).start();
}
}
}
//售票类,实现Runnable接口,可以作为线程执行对象
class TicketSeller implements Runnable{
//该售票窗口编号
private int code;
public TicketSeller(int code) {
this.code = code;
}
@Override
public void run() {
for(int i = 0;i < 5;i++) {
System.out.println(code + "号窗口");
//为了使线程能够交替执行,打印完成语句让线程休眠一小会
try {
Thread.sleep(300);
} catch (InterruptedException e) {