woolpack.utils.concurrent
クラス DoSemaphore

java.lang.Object
  上位を拡張 woolpack.utils.concurrent.DoSemaphore
すべての実装されたインタフェース:
Acquirable

public class DoSemaphore
extends java.lang.Object
implements Acquirable

acquire()Semaphore.acquire()を実行し、 release()Semaphore.release()を実行するAcquirable。 適用しているパターン:Adapter, Template Method。

作成者:
nakamura

コンストラクタの概要
DoSemaphore(java.util.concurrent.Semaphore semaphore)
          コンストラクタ。
 
メソッドの概要
 boolean acquire()
          実行権を取得する。
 java.util.concurrent.Semaphore getSemaphore()
           
 void processInterruptedException(java.lang.InterruptedException e)
          acquire()InterruptedException が発生した場合にacquire()から呼び出される(called)。
 void release()
          実行権を解放する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DoSemaphore

public DoSemaphore(java.util.concurrent.Semaphore semaphore)
コンストラクタ。

パラメータ:
semaphore - 委譲先。本クラスはこの引数の状態を変化させる。
例外:
java.lang.NullPointerException - 引数が null の場合。
メソッドの詳細

acquire

public boolean acquire()
インタフェース Acquirable の記述:
実行権を取得する。 実行権が取得可能でない場合に実行権を取得するまで処理をブロックするかは実装に依存する。 また内部でInterruptedExceptionが発生した場合に割り込み再設定 (Thread.interrupt())を指定するかは実装に依存する。

定義:
インタフェース Acquirable 内の acquire
戻り値:
実行権を取得できた場合は true。それ以外の場合は false。

release

public void release()
インタフェース Acquirable の記述:
実行権を解放する。 本メソッドを実行するスレッドが実行権を確保している必要があるかは実装に依存する。

定義:
インタフェース Acquirable 内の release

processInterruptedException

public void processInterruptedException(java.lang.InterruptedException e)
acquire()InterruptedException が発生した場合にacquire()から呼び出される(called)。 必要に応じてオーバライドすることができる。 デフォルトは現在のスレッドに対してThread.interrupt()を実行した後、 原因が引数であるIllegalStateExceptionを投げる。

パラメータ:
e - 原因。
例外:
java.lang.IllegalStateException - ( InterruptedException)デフォルト実装では常に投げる。

getSemaphore

public java.util.concurrent.Semaphore getSemaphore()


Copyright (C) 2006 Takahiro Nakamura. All rights reserved.