How to kill a java thread using VisualVM or using a unix command?

后端 未结 8 1187
耶瑟儿~
耶瑟儿~ 2021-01-31 04:30

I m using windows 7 OS. I have around 6 threads in my application. For the purpose of testing the alerts to check the health of the threads, i need to kill the thre

8条回答
  •  我在风中等你
    2021-01-31 05:15

    As mentioned in a previous post by buzz3791, it works by using jdb. However the change that I noticed is, you can't kill the thread, but you can interrupt or suspend the thread.

    #jdb -attach 50100

    threads --This will show all threads running on the jvm under Groups and Reference Handler section.

    Groups Reference Handler
    :(com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary)0x36c1: OrientDB (/xxx.xxx.xxx.xxx:123) <- BinaryClient (/xxx.xxx.xxx.xxx:678)

    thread 0x36c1-- This will be the thread id that can be picked from one of the threads in the thread that you wish to kill/interrupt and run this interrupt 0x36c1

    OrientDB (/xxx.xxx.xxx.xxx:123) <- BinaryClient (/xxx.xxx.xxx.xxx:678)[1] interrupt 0x36c1

    you can try multiple times the same interrupt command and if it is already interrupted, it will show that the thread id is invalid. Thus you know that the thread is killed, this can be verified by looking at the stack trace and confirmed.

    Tested this on the OrientDB database server with jdk 8 and it works.

提交回复
热议问题