パッケージ 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のプロセスに対してシリアルに対して処理している限りでは、 フリーズ問題は発生しないようです)
  機能分類
    帳票システム
  バージョン
    4.0
  作成者
    Hiroki.Nakamura
  導入されたバージョン:
    JDK1.6

- - ### メソッドの概要

    すべてのメソッド staticメソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `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) デバッグ追加