观察下Thread-A线程退出之后,对应的内核线程是否也退出了.
为了观察现象,使用到一个JDK自带的jvisualvm图形化工具和ps命令....编译并运行
首先使用jvisualvm观察下线程的情况
说明: 进程ID=686
Thread-A线程在运行完成之后,就退出了,这里看到的线程是Java层面的线程,那么我们通过ps命令看下内核层面的线程情况...【总结】 当Java的线程退出之后,对应的内核线程也会退出.
当然,以上是我们根据现象观察出来的结果,那么接下来我们通过查看JVM源码看一下....同时当Java线程的run方法执行完成之后, 线程就调用exit退出了. 这里也就解释了Java线程退出之后,内核线程也会退出的原因了....以上也只是分析了一个普通的线程退出之后,内核线程也自然退出了.
难道main线程也是这样的吗? main线程是第一个线程吗?
我们后面再单独说下main线程的情况.