_波克

导航

Lock锁

Lock

(interface)
(jdk1.5特性)
• 常用方法
void lock(): 获取锁。
void unlock(): 释放锁。
• ReentrantLock extends Lock
我们一般用 lock 的实现类( ReentrantLock 类)构建对象
• 示例代码
@Override
public void run() {
  while (true) {
    try {// 加锁
      lock.lock();//紫色部分为需要同步的代码
      if (tickets > 0) {
        try { 
          Thread.sleep(100);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        System.out.println(Thread.currentThread().getName()
            + "正在出售第" + (tickets--) + "张票");}
    } finally {
      // 释放锁
      lock.unlock();
    }

  }

}

posted on 2018-10-06 14:43  _波克  阅读(143)  评论(0编辑  收藏  举报