kagamihogeの日記

kagamihogeの日記です。

はじめて java.util.concurrent の API を使った スリープとロック

まずはスリープ。

try {
    TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
    e.printStackTrace();
}

TimeUnit#sleep は、javadoc を見ると単に Thread.sleep の簡易呼び出しに過ぎないらしい。


つぎにロック。

private ReentrantLock lock = new ReentrantLock();
private void lockSample() {
    lock.lock();
    try {
      //ロックをかけて処理したいことをここに書く
    } finally {
      lock.unlock();
    }
}

……まぁ、Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle のサンプルコードとマッタク同じなんですが。こいつは synchronized とおなじことが実現できる。finally で unlock 必ずしないといけないのがちと synchronized と違い気をつけないといけない点かな? tryLock とか面白そうな感じなので、java.util.concurrent はちゃんと勉強したいなぁ……