用java的线程写一个车站窗口的代码
时间: 2023-04-09 18:00:43 浏览: 50
好的,我可以回答这个问题。以下是一个简单的用 Java 线程实现的车站窗口代码:
```java
public class StationWindow {
public static void main(String[] args) {
TicketCounter ticketCounter = new TicketCounter();
Thread t1 = new Thread(ticketCounter, "窗口1");
Thread t2 = new Thread(ticketCounter, "窗口2");
t1.start();
t2.start();
}
}
class TicketCounter implements Runnable {
private int tickets = 100;
@Override
public void run() {
while (tickets > 0) {
synchronized (this) {
if (tickets > 0) {
System.out.println(Thread.currentThread().getName() + "售出第" + tickets + "张票");
tickets--;
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
这个代码模拟了两个窗口同时售票的场景,每个窗口都是一个线程。使用 synchronized 关键字来保证线程安全,避免出现多个窗口同时售出同一张票的情况。