public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException {
   return sync.tryAcquireNanos(1, unit.toNanos(timeout));
 }
 public Thread getLockOwner() {
   return sync.getLockOwner();
 }
 public boolean hasQueuedThreads() {
   return sync.hasQueuedThreads();
 }
 public void lockInterruptibly() throws InterruptedException {
   sync.acquireInterruptibly(1);
 }
 public boolean isLocked() {
   return sync.isHeldExclusively();
 }
 public Condition newCondition() {
   return sync.newCondition();
 }
 public void unlock() {
   sync.release(1);
 }
 public boolean tryLock() {
   return sync.tryAcquire(1);
 }
 public void lock() {
   sync.acquire(1);
 }