package org.meng.juc;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* @ClassName: TestLock
* @Description: 显示锁;需要通过lock()方法上锁,必须通过unlock()方法进行释放锁
* @Author: MengMeng
* @Date: 2021/1/17 1:24 下午
* @Version: v1.0
*/
public class TestLock {
public static void main(String[] args) {
Ticket ticket = new Ticket();
new Thread(ticket,"1").start();
new Thread(ticket,"2").start();
new Thread(ticket,"3").start();
}
}
class Ticket implements Runnable {
private int num = 100;
private Lock lock = new ReentrantLock();
@Override
public void run() {
while (true){
lock.lock();
try {
if (num > 0){
System.out.println(Thread.currentThread().getName()
+ "完成售票,余票为:"+ --num);
}
}finally {
lock.unlock();
}
}
}
}