package thread;
/**
* @author miller
* @date 2022/10/28 3:24 PM
*/
public class TicketWindow2 implements Runnable {
private int ticket = 300;
@Override
public void run() {
int a = 0;
while (true) {
// try {
// Thread.sleep(500); // todo 加了之后 后边卖出票数 相加 会发现超过30张了
// todo 不加 sleep ,复现不了超卖
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "卖出了第" + ticket-- + "张票," + "剩余" + ticket + "张票");
a ++;
} else {
System.out.println(Thread.currentThread().getName() + "余票不足,停止售票!");
break;
}
}
System.out.println(Thread.currentThread().getName() + "====共卖出 " + a);
}
}
class SellTicketTest2 {
public static void main(String[] args) {
TicketWindow2 tw = new TicketWindow2(); //
for (int i = 1; i < 4; i++) {
Thread t = new Thread(tw,"窗口"+i);
t.start();
}
}
}
变量ticket . 同时判断>0, 结果是1. 同时-1