1

ScheduledThreadPoolExecutorのコンストラクターの1つを使用すると、ThreadFactoryを渡すことができます。

私はすでにスレッドプールを扱っているので、これは少し奇妙です!つまり、スレッドの存続期間を管理する方法を知っています。

私の観点からは、これは戦略パターンのように見え、提供するスケジューリングサービスを維持しながら、スレッド作成のロジックをオーバーライドできます。

  1. 私はそれを正しく理解していますか?
  2. Javaに組み込まれているThreadFactoriesとは何ですか?

ありがとうございました!

4

2 に答える 2

4

ThreadFactory通常、スレッドを作成する方法を詳述するファクトリ パターンとして使用されます。

典型的な使用例は、スレッドに論理的な名前を付けることです。

public WorkerThreadFactory implements ThreadFactory {
   private int counter = 0;

   public Thread newThread(Runnable r) {
     return new Thread(r, "Worker" + "-" + count++);
   }
}

これは、ユースケースのかなり網羅的なリストです。

ThreadFactory の組み込み実装は次のようになります。 Executors.defaultThreadFactory()

これらは、それが使用されている場所です。

于 2012-08-06T06:04:52.263 に答える
0

カスタム スレッド ファクトリを使用することを常にお勧めします。デフォルトのファクトリはあまり役に立ちません。次の理由から、カスタム ファクトリを使用する必要があります。

  1. カスタムスレッド名を持つには
  2. スレッドの種類を選択するには
  3. スレッドの優先度を選択するには
  4. キャッチされない例外を処理するには

この投稿を確認してください: http://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/

于 2014-09-12T10:57:44.643 に答える