代码中不包含创建线程操作,在运行main时,
JVM也会自动地启动其他的线程,这些线程都有特定的功能
Attach Listener :该线程是负责接收到外部的命令,执行该命令,并且把结果返回给发送者。通常我们会用一些命令去要求jvm给我们一些反馈信息,如:java -version、jmap、 jstack等等。如果该线程在jvm启动的时候没有初始化,那么,则会在用户第一次执行jvm命令时,得到启动。
Signal Dispatcher:把操作系统发来的信号分发给适当的应用程序,用于连接操作系统和应用程序
Finalizer:在每个对象结束的时候,可能会实现finalize()方法,该线程主要是为了处理该方法。
(随着java语言的发展,finalize()不推荐使用)
Reference Handler:和GC、引用相关的线程。和垃圾回收相关,将每一个对象的引用记录在案,配合GC进行垃圾回收。