package com.cn;
public class BuyTickes {
public static volatile int nums = 30;
public static void buyTickets() {
System.out.println("當前用戶【線程】" + Thread.currentThread().getName() + ",搶到了第" + nums + "票");
nums--;
}
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
new Thread(() -> {
while (true){
synchronized(BuyTickes.class)
{
try{
// Thread.sleep(2);
if(nums>0){
buyTickets();
}else{
System.out.println("當前窗口已經售完!");
break;
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}, i + "線程").start();
}
}
}
運行結果: