开发者

Java thread pools - thread number in logs

I am using a networking library which uses a thread pool for delegating tasks to specialized request handlers. In the logs of the library I see the following:

[05.03.2010 16:11:27] [pool-3-thread-9] DEBUG ...
[05.03.2010 16:11:27] [pool-1-thread-447] DEBUG ......
[05.03.2010 16:11:27] [pool-1-thread-447] DEBUG ....
[05.03.2010 16:11:27] [pool-1-thread-440] DEBUG ..

Thread IDs are slowly rising, however memory usage is consistent. Does this mean that a cached thread pool is in use here? That's a fairly big Thread ID, I hope it doesn't mean there's over 4开发者_运维问答00 idle/working threads in the application.


In the Java source for Thread there is the following code:

private static int threadInitNumber;

private static synchronized int nextThreadNum() {
    return threadInitNumber++;
}

This number is used by the Thread constructor, when users don't specify a name. They do not reuse numbers for terminated/finished threads.

So when memory consumption is equal: it definitely means older Threads are not (fully) reused but terminated or finished.


You may see the stack trace for the process (kill -QUIT process_id on unix ). This should show all the threads for the process.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜