编写一个多线程程序,模拟火车售票窗口售票的功能。创建线程1和线程2,通过这两个线程共同售出100张票。请用Java实现
时间: 2023-06-06 15:07:15 浏览: 257
好的,根据您的要求,我为您编写一个多线程程序,模拟火车售票窗口售票的功能。以下是Java代码实现:
```java
public class TicketSelling implements Runnable {
private int ticketCount = 100; // 总票数
private int soldCount = 0; // 已售票数
@Override
public void run() {
while (ticketCount > 0) {
synchronized (this) { // 保证线程安全
if (ticketCount > 0) {
ticketCount--;
soldCount++;
System.out.println(Thread.currentThread().getName() + "售出了第" + soldCount + "张票");
}
}
try {
Thread.sleep(100); // 模拟售票员处理订单的时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
以上是模拟售票的线程类,接下来在主程序中启动两个线程。
```java
public class Main {
public static void main(String[] args) {
TicketSelling ticketSelling = new TicketSelling();
Thread t1 = new Thread(ticketSelling, "售票员A");
Thread t2 = new Thread(ticketSelling, "售票员B");
t1.start();
t2.start();
}
}
```
以上就是以Java实现一个简单的火车售票程序。
阅读全文