多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
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(); //} } } } ~~~