What are the maximum number of threads which can be maintained by the Java virtual machine?
I did not explain this in my original question, but I am trying to benchmark the JVM and would like to try and see how many threads it can concurrently maintain.
Creating threads in a loop until an exception is thrown is an option, however, I would like to know if there is a better way to do this.
Writing a loop that creates new threads until it blows up is the definitive way to find out. You might well see performance degrade terribly before it actually dies.
I don’t know if there’s any configuration parameter or other built-in limit in the JVM off the top of my head. I’ve never run into a limit in practice. Of course sooner or later you will run out of memory, maybe some other resource.
I suspect that there is not a limit on number of threads per se, but rather on resources associated with a thread. That is, you might see that you can have 10,000 threads if all of them are running just one small class with a few bytes of data each, but the number drops rapidly when they each have an array of 10 million strings.