java实现并发的买票系统
时间: 2023-10-06 07:13:47 浏览: 45
以下是一个简单的Java实现并发的买票系统:
```java
public class BuyTicketSystem implements Runnable {
private int ticketCount = 10;
@Override
public void run() {
while (ticketCount > 0) {
synchronized (this) { // 使用synchronized关键字实现互斥
if (ticketCount > 0) {
System.out.println(Thread.currentThread().getName() + "买到了第" + ticketCount + "张票");
ticketCount--;
}
}
try {
Thread.sleep(100); // 模拟购票过程中的耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
BuyTicketSystem system = new BuyTicketSystem();
Thread t1 = new Thread(system, "用户A");
Thread t2 = new Thread(system, "用户B");
Thread t3 = new Thread(system, "用户C");
t1.start();
t2.start();
t3.start();
}
}
```
在上述代码中,我们使用了`synchronized`关键字来实现了互斥。当一个线程获取到锁之后,其他线程就无法获取到锁,只能等待该线程释放锁。
运行上述代码,我们可以看到三个用户在不断地买票,直到票卖完为止。由于使用了互斥机制,每张票都只会被一个用户买到。