2016-07-15 3 views
0

内のスレッドのデフォルトの名前でプール番号の意味私はコアサイズのスレッドプールを維持するためにScheduledExecutorServiceを使用しています10ScheduledExecutorService

ScheduledExecutorService visiblityThreadPool = Executors.newScheduledThreadPool(10)。

ログには、プール-39スレッド-3というthredNameがあります。

スレッド番号が1から10まで変わることがあると仮定して、スレッド番号3でOKですが、39の名前にプール番号がどのように入りますか?

ここで39とは何ですか?光をあててください。

答えて

0

この文字列はThreadオブジェクトの名前接頭辞で、java.util.concurrent.Executors$DefaultThreadFactoryから初期化されています。

source code of this classpool-次の数は、従ってstaticフィールドに格納されAtomicIntegerから生成さ

/** 
* The default thread factory 
*/ 
static class DefaultThreadFactory implements ThreadFactory { 
    private static final AtomicInteger poolNumber = new AtomicInteger(1); 
    private final ThreadGroup group; 
    private final AtomicInteger threadNumber = new AtomicInteger(1); 
    private final String namePrefix; 

    DefaultThreadFactory() { 
     SecurityManager s = System.getSecurityManager(); 
     group = (s != null) ? s.getThreadGroup() : 
           Thread.currentThread().getThreadGroup(); 
     namePrefix = "pool-" + 
         poolNumber.getAndIncrement() + 
        "-thread-"; 
    } 

    public Thread newThread(Runnable r) { 
     Thread t = new Thread(group, r, 
           namePrefix + threadNumber.getAndIncrement(), 
           0); 
     if (t.isDaemon()) 
      t.setDaemon(false); 
     if (t.getPriority() != Thread.NORM_PRIORITY) 
      t.setPriority(Thread.NORM_PRIORITY); 
     return t; 
    } 
} 

ように見えます。各​​インスタンスは、その前に初期化されたインスタンス(+1)がいくつあるかを表すソートの「id」を取得します。

この​​のExecutorsメイク使用されている最もExecutorServiceファクトリメソッドので、あなたも、この数は、多くのスレッドプールがExecutorServiceを介して作成されたかを表していると仮定することができます。

+0

作成されたスレッドプールの数ではありません。 'DefaultThreadFactory'インスタンスがいくつ作成されています。なぜJREが39のスレッドファクトリを作成する必要があるのか​​分かりませんが、必ずしも1つのスレッドまたは1つのスレッドプールを作成する必要はありません。 –

+0

お返事ありがとうございます。私のアプリケーションでは、アプリケーションの起動時にExecutors.newScheduledThreadPoolが1回だけ呼び出されました。だから、理想的にはpool_1を表示する必要がありますが、私はDefaultThreadFactoryインスタンスをたくさん作成しているかもしれない例えばdatastaxドライバ、ユーリカのクライアント、埋め込みのtomcatなどのサードパーティの依存関係を使用していると思います。同じ気持ちですか? – Laxmikant

+0

@Laxmikantええ、それはおそらく起こっていることです。 –

関連する問題