问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
public class SellTicket {
public static void main(String[] args) {
SellTicket03 sellTicket03 = new SellTicket03();
new Thread(sellTicket03).start();
new Thread(sellTicket03).start();
new Thread(sellTicket03).start();
// new Thread(new SellTicket03()).start();
// new Thread(new SellTicket03()).start();
// new Thread(new SellTicket03()).start();
}
}
class SellTicket03 implements Runnable{
private static int ticketNum = 100;
private boolean loop = true;
@Override
public void run() {
while (loop){
sell();
}
}
public synchronized void sell(){//同步方法
if (ticketNum <= 0) {
System.out.println("余票不足,售票失败");
loop = false;
return;
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
}
System.out.println("窗口" + Thread.currentThread().getName() + "售票成功,余票:" + --ticketNum);
}
}
运行结果及报错内容
直接创建对象
使用匿名类