I have a question about threads that run by my application at runtime and their status.
I have a Swing application and I noticed a couple of weird behaviors in some test cases using Java VisualVM. Having started my program for 30 minutes, doing nothing (I just started and left it there), I noticed the following.
First of all, on the Threads tab, I see a lot of live streams. 
Reading (among other things) Default threads, such as DestroyJavaVM, a link handler, a signal manager, and What are these threads allocated when a Java application starts execution? I understand that most of these threads have a very good reason. (I'm still trying to figure out "RMI TCP")
I have doubts, however, in their condition. Is it normal that the first six of them were Running 100% of the time?
Also, can any of these threads explain heap consumption as follows? 
I noticed that many instances of HashMap $ Entry and TreeMap $ Entry are referenced and created by libraries originating from sun.rmi. * and I thought this could be due to RMI TCP streams ...
And last but not least, if I try to delete () my main JFrame, the frame itself will disappear, but the application will still run .... could these threads be the reason (or part)?
Thanks to everyone.
java memory-management multithreading
mdm
source share