Lock l = new ReentrantLock();
@Override
public void run() {
while(true){
l.lock();
if(num == 0){
break;
}
String name = Thread.currentThread().getName();
System.out.println(name+"卖出了第"+(1000-num + 1)+"张票,还剩"+(--num)+"张");
l.unlock();
if(num == 0){
break;
}
}
}
}
if判定在lock内代码上时程序不动但是没有停止,只有在代码下在加一次if判定程序才会停止运行
|
|