public class SellTicket {
public static void main(String[] args) {
TicketWindow ticketWindow = new TicketWindow();
Thread thread = new Thread(ticketWindow);
Thread thread1 = new Thread(ticketWindow);
Thread thread2 = new Thread(ticketWindow);
thread.setName("一号窗口");
thread1.setName("二号窗口");
thread2.setName("三号窗口");
thread.start();
thread1.start();
thread2.start();
}
}
class TicketWindow implements Runnable {
private int ticketNum = 100;//Runnable方式线程可以操作同一个资源,可以不定义为static
@Override
public void run() {
while (true) {
synchronized (this) {
if (ticketNum <= 0) {
System.out.println(Thread.currentThread().getName() +"票已售完");
break;
}
System.out.println(Thread.currentThread().getName() + "售出一张票" + "剩余票数" + (--ticketNum));
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Runnable模拟实现窗口卖票
于 2022-05-20 17:48:15 首次发布