清单 1. 用 ReentrantLock 保护代码块。
    保证锁一定会被释放
    使用重入锁(默认是非公平锁)创建公平锁**
    Lock lock = new ReentrantLock();
    lock.lock();
    try {
    // update object state
    }
    finally {
    lock.unlock();
    }**