package java2;
class TicketRunnable implements Runnable {
private ThreadLocal<Integer> ticket = new ThreadLocal<>();
private void setTicket(){
ticket.set(10);
}
private void reduceTicket(){
ticket.set(ticket.get()-1);
}
@Override
public void run() {
this.setTicket();
for (int i = 0; i < 10; i++) {
//添加同步快
if (this.ticket.get() > 0) {
try {
//通过睡眠线程来模拟出最后一张票的抢票场景
Thread.sleep(100);
this.reduceTicket();
System.out.println(Thread.currentThread().getName() + "卖票---->" +this.ticket.get());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] arg) {
TicketRunnable t1 = new TicketRunnable();
new Thread(t1, "线程1").start();
new Thread(t1, "线程2").start();
}
}