ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。 * Lock接口中的常用方法 ![](https://box.kancloud.cn/df1cd9dc127cbea1cf9bc3b43a5f247e_510x238.jpg) Lock提供了一个更加面对对象的锁,在该锁中提供了更多的操作锁的功能。 我们使用Lock接口,以及其中的lock()方法和unlock()方法替代同步 ~~~ public class Ticket implements Runnable { //共100票 int ticket = 100; //创建Lock锁对象 Lock ck = new ReentrantLock(); @Override public void run() { //模拟卖票 while(true){ //synchronized (lock){ ck.lock(); if (ticket > 0) { //模拟选坐的操作 try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "正在卖票:" + ticket--); } ck.unlock(); //} } } } ~~~