パッケージ org.opengion.hayabusa.report2

# クラス ExecThreadManager

java.lang.Object
org.opengion.hayabusa.report2.ExecThreadManager

public final class ExecThreadManager extends Object
帳票処理を行う各スレッドを管理するクラスです。 各スレッドは、内部的にプールされます。 スレッドのIDはOOoQueue#getThreadId()で返される値です。 スレッドが生成されるタイミングは、そのIDで初めてスタック要求が来た(insertQueue()が呼ばれた)時です。 指定のスレッドを終了するには、funishThread( key )を呼び出します。 全てのスレッドを終了するには、funishAllThreads()を呼び出します。 現時点での実装では、生成されたスレッドに対しての監視は行っていません。 これは、特定のスレッドがフリーズした際、外部から強制終了を行おうとすると、 監視スレッドもフリーズしてしまう問題があるためです。 (但し、1つのsoffice.binのプロセスに対してシリアルに対して処理している限りでは、 フリーズ問題は発生しないようです)

機能分類
  帳票システム
導入されたバージョン:
  JDK1.6

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `static void`
  `finishAllThreads()`
  全てのスレッドを終了します。
  `static void`
  `finishThread(String threadId)`
  指定のスレッドを終了します。
  `static ConcurrentMap<String,String>`
  `getThreadInfo()`
  スレッド情報のマップを返します。
  `static void`
  `insertQueue(ExecQueue queue)`
  キューを該当するスレッドにスタックする。
  `static void`
  `insertQueueOnNewThread(ExecQueue queue)`
  キューを該当するスレッドにスタックする このメソッドでは、既に同じスレッドが存在するかどうかをチェックせずに必ず 新しいスレッドを生成し、キューを処理します。
  `static void`
  `setDebug(boolean flag)`
  デバッグフラグの設定。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## メソッドの詳細

  - ### insertQueue

    public static void insertQueue(ExecQueue queue)
    キューを該当するスレッドにスタックする。
    パラメータ:
      `queue` - ExecQueueオブジェクト
    変更履歴:
      4.3.0.0 (2008/07/15) スレッドIDにシステムIDを付加

  - ### insertQueueOnNewThread

    public static void insertQueueOnNewThread(ExecQueue queue)
    キューを該当するスレッドにスタックする このメソッドでは、既に同じスレッドが存在するかどうかをチェックせずに必ず 新しいスレッドを生成し、キューを処理します。 また、処理が完了した後、そのスレッドは、WAITすることなく終了します。
    パラメータ:
      `queue` - ExecQueueオブジェクト
    変更履歴:
      5.1.6.0 (2010/05/01) 新規作成

  - ### finishAllThreads

    public static void finishAllThreads()
    全てのスレッドを終了します。 ※ REP21/result2.jsp で、使用。
    変更履歴:
      6.4.3.3 (2016/03/04) Map#forEach で対応する。

  - ### finishThread

    public static void finishThread(String threadId)
    指定のスレッドを終了します。 ※ REP21/entry.jsp で、使用。
    パラメータ:
      `threadId` - スレッドID

  - ### getThreadInfo

    public static ConcurrentMap<String,String> getThreadInfo()
    スレッド情報のマップを返します。 ※ REP21/result2.jsp で、使用。
    戻り値:
      スレッド情報のマップ
    変更履歴:
      6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 6.4.3.3 (2016/03/04) 戻すMapが、not null制限つきであることを示すため、ConcurrentMap に置き換えます。, 6.4.3.3 (2016/03/04) Map#forEach で対応する。

  - ### setDebug

    public static void setDebug(boolean flag)
    デバッグフラグの設定。
    パラメータ:
      `flag` - デバッグフラグ [true:デバッグ/false:通常]
    変更履歴:
      4.3.0.0 (2008/07/15) デバッグ追加