Java Thread Lock lockedSleep(Lock l, long time)

Here you can find the source of lockedSleep(Lock l, long time)

Description

Releases l before sleeping and then acquires l after sleeping.

License

Open Source License

Parameter

Parameter Description
l the <code>Lock</code>
time the time to sleep

Declaration

public static void lockedSleep(Lock l, long time) 

Method Source Code

//package com.java2s;
/*//  w  w w  .  j a  va2s. c  o m
 * Copyright (c) 2013 Game Salutes.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v3
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/lgpl.html
 * 
 * Contributors:
 *     Game Salutes - Repackaging and modifications of original work under University of Chicago and Apache License 2.0 shown below
 * 
 * Repackaging from edu.uchicago.nsit.iteco.utils to com.gamesalutes.utils
 * 
 * Copyright 2008 - 2011 University of Chicago
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

import java.util.concurrent.locks.Lock;

public class Main {
    /**
     * Releases <code>l</code> before sleeping and then acquires <code>l</code> after
     * sleeping.
     * 
     * @param l the <code>Lock</code>
     * @param time the time to sleep
     */
    public static void lockedSleep(Lock l, long time) {
        // release the lock before sleeping
        l.unlock();
        try {
            Thread.sleep(time);
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt();
        } finally {
            // regain the lock after sleeping
            l.lock();
        }
    }
}

Related

  1. loadClass(String className)
  2. loadClassWithRegisteredClassLoaders(String className)
  3. lock(Lock lock)
  4. lock(Lock lock)
  5. lockAll(List locks)
  6. newLinkedBlockingDeque(Collection collection)
  7. release()
  8. releaseLock(final Lock lock)
  9. releaseReadLock(final ReadWriteLock lock)