How to write a Java deadlock program and analyze jstack
This article will explain in detail how to write a Java deadlock program and analyze jstack. The content of the article is of high quality, so the editor shares it for you as a reference. I hope you will have a certain understanding of the relevant knowledge after reading this article.
So how to write a Java deadlock program? The code is very simple, I have written it and everyone can understand it.
The code is simple: two threads each acquire one of the locks without releasing the held lock, and then try to acquire the other lock.
Then, let's take a look at the information through jps and jstack 8902 > jstack_deadlock.log.
Let's take a look. Deadlock Deadlock status.
As you can see from the above, Thread-0 locks locked (the object of a java.lang.Object lock). Then waiting to lock waits for another memory address, the object, to be locked.
Thread-1 locks locked (the object of a java.lang.Object lock). Then waiting to lock waits for another memory address, the object, to be locked.
Jstack also clearly lists the status of the relevant thread java.lang.Thread.State: BLOCKED (on object monitor).
Take another look at the stack information for the threads listed by jstack:
Navigate to lines 24 and 42 of the relevant Java code DeadLockTest.java.
On how to write a Java deadlock program and analysis of jstack is shared here, I hope the above content can be of some help to you, can learn more knowledge. If you think the article is good, you can share it for more people to see.