Lock:
void lock():获取锁
void unlock():释放锁
ReentranLock是Lock的实现类
public class SellTicket implements Runnable {
// 定义一个共享变量
private int num = 100;
// 定义锁对象
private Lock lock = new ReentrantLock();
public void run() {
while (true) {
try {
// 加锁
lock.lock();
if (num > 0) {
System.out.println(Thread.currentThread().getName() + "正在出售第" + num-- + "张电影票!");
}
} finally {//保证锁一定会释放
// 释放锁
lock.unlock();
}
}
}
}
public class SellTicketDemo {
public static void main(String[] args) {
SellTicket st=new SellTicket();
//定义Thread对象
Thread s1=new Thread(st,"窗口1");
Thread s2=new Thread(st,"窗口2");
Thread s3=new Thread(st,"窗口3");
s1.start();
s2.start();
s3.start();
}
}