attach進程原理?
通過jstack查看線程dump可以看到這兩個線程:Signal Dispatcher線程和**Attach Listener線程**
每個JVM都會有Signal Dispatcher線程,用于處理信號。Attach Listener線程用于JVM進程間的通信,但是它不一定會啟動,啟動它有兩種方式:
1)啟動的時候通過JVM參數指定啟動Attach Listener線程
java -XX:+StartAttachListener mainClass
2)attach目標JVM成功后,目標JVM啟動Attach Listener線程
如果不在啟動JVM的時候啟動Attach Listener線程,那只能依靠Signal Dispatcher線程來啟動了。