一 点睛
线程分析主要关心三个方面:
1 web 容器的线程最大数。比如: Tomcat 的线程容量应该略大于最大并发数。
2 线程阻塞
3 线程死锁
二 使用 Jprofile 内置的 JDBC demo 进行说明
1 Thread History
2 线程 dump
显示结果如下
三 线程死锁
1 代码
package chaper02;
/**
* @className: ThreadDeadLock
* @description: 线程死锁
* @date: 2021/8/22
*/
public class ThreadDeadLock {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder();
StringBuilder s2 = new StringBuilder();
new Thread() {
public void run() {
synchronized (s1) {
s1.append("a");
s2.append("1");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (s2) {
s1.append("b");
s2.append("2");
System.out.println(s1);
System.out.println(s2);
}
}
}
}.start();
new Thread() {
public void run() {
synchronized (s2) {
s1.append("c");
s2.append("3");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (s1) {
s1.append("d");
s2.append("4");
System.out.println(s1);
System.out.println(s2);
}
}
}
}.start();
}
}