Java多线程买票,要求有休眠,的程序代码
时间: 2023-08-04 16:11:49 浏览: 84
下面是一个简单的Java多线程买票程序,其中包含了休眠的功能。
```java
public class TicketSeller implements Runnable {
private int ticketCount = 10; // 剩余车票数量
@Override
public void run() {
while (ticketCount > 0) {
try {
// 模拟处理其他业务,让线程休眠一段时间
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (this) { // 同步锁
if (ticketCount > 0) {
System.out.println(Thread.currentThread().getName() + "卖出了第" + ticketCount + "张车票");
ticketCount--;
} else {
System.out.println("车票已售完");
}
}
}
}
public static void main(String[] args) {
TicketSeller ts = new TicketSeller();
new Thread(ts, "窗口1").start();
new Thread(ts, "窗口2").start();
new Thread(ts, "窗口3").start();
}
}
```
在程序中,每个线程都会先休眠一段时间,模拟处理其他业务。然后,线程获取同步锁,并检查是否还有剩余车票,如果有就卖掉一张,并将剩余车票数量减一。如果车票已经售完,则输出相应的信息。
值得注意的是,由于多个线程会同时访问剩余车票数量,因此需要使用同步锁来保证线程安全。否则,可能会出现多个线程同时卖出同一张车票的情况。
阅读全文