Я не понимаю, почему эта программа не остановится. Я пытаюсь напечатать «break» после перерыва, и он может быть напечатан успешно Но похоже, что пока l oop не остановится после перерыва. Может кто-нибудь сказать мне, почему это происходит?
Спасибо за помощь!
public class Note9_lock {
public static void main(String[] args) {
Runnable run = new Ticket();
new Thread(run).start();
new Thread(run).start();
}
static class Ticket implements Runnable{
private int count = 10;
Lock l = new ReentrantLock(true);
@Override
public void run() {
while (true){
l.lock();
if (count>0){
System.out.println("selling tickets");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
count--;
System.out.println(Thread.currentThread().getName()+"selling success,left tickets "+count);
}else {
System.out.println("break");
break;
}
l.unlock();
System.out.println("unlock");
}
}
}
}