Johnny_hunter wrote:for whatever it needs a thread-pool (likely candidates are more significant frameworks like webservers, etc). if you create stack dump of your application, you should be able to see what all the threads are doing. additionally, if you attach a memory profile to your application, you should probably be able to figure out what classes own what thread pools. this should enable you to determine where the other thread pools are getting instantiated.
thanks Jahlborn. I didn't create multile executor instances explicitly - under what circurmstances that the JVM feel needs to create multiple executor instances?
EJP wrote:i guess that kind of depends how you define "JVM". if you define it as the native code only, i guess that's true. If you include all the code included as part of the JRE, then that is not true.under what circurmstances that the JVM feel needs to create multiple executor instances?Under no circumstances. The JVM doesn't create executor instances at all unless the application does so, or one of its component libraries.
EJP wrote:that's fine, but splitting that hair for the purpose of answering this question doesn't seem to add anything of use. The OP's comment says "JVM" but it's pretty clear his intent is to refer to the "JRE".
There's only one definition for JVM. The JVM is the thing that executes bytecode, as defined in the Java Virtual Machine Specification.
EJP wrote:Ah, so i did. Your supposed "clarification" seems more like it is arguing against my intent, not clarifying my usage of the term "jvm" to mean "jre".The OP's comment says "JVM" but it's pretty clear his intent is to refer to the "JRE".It was you that first said "JVM" here. It is pretty clear your intent was to refer to the "JRE". So I said so.