用java基础语言编写程序多窗口售卖电影票:假设电影院有3个窗口编号为A1、A2、A3同时售卖电影票每个窗口可售卖10张电影票每张电影票售卖需要1秒在屏幕打印A?售卖第几张票要求用多线程实现接口的方式实现。
以下是一个可能的解决方案:
public class TicketSeller implements Runnable {
private String windowId;
private int ticketCount;
public TicketSeller(String windowId) {
this.windowId = windowId;
this.ticketCount = 0;
}
public void run() {
while (ticketCount < 10) {
ticketCount++;
System.out.println(windowId + "售卖第" + ticketCount + "张票");
try {
Thread.sleep(1000); // 模拟售票过程,每张票售卖需要1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(windowId + "已售完所有电影票");
}
public static void main(String[] args) {
TicketSeller seller1 = new TicketSeller("A1");
TicketSeller seller2 = new TicketSeller("A2");
TicketSeller seller3 = new TicketSeller("A3");
Thread thread1 = new Thread(seller1);
Thread thread2 = new Thread(seller2);
Thread thread3 = new Thread(seller3);
thread1.start();
thread2.start();
thread3.start();
}
}
在这个程序中,我们定义了一个TicketSeller类实现了Runnable接口,每个窗口都是一个TicketSeller对象。在run方法中,每个窗口售卖电影票的过程是一个循环,每次循环售卖一张票并打印售票信息,然后休眠1秒模拟售票过程。当售票数量达到10张时,循环结束。
在main方法中,我们创建了3个TicketSeller对象,并用Thread类创建了3个线程分别执行每个窗口的售票任务。当程序运行时,每个窗口都在独立的线程中进行售票操作,并打印售票信息
原文地址: http://www.cveoy.top/t/topic/hsYj 著作权归作者所有。请勿转载和采集!