运行Java: java -Xms100M -Xmx200M HelloWorld; 运行java程序时,手动分配内存的最大值和最小值,可以优化垃圾回收。
故障诊断:死锁(安装ThreadDump,可以定位产生死锁的位置信息)
Demo.java:
package cn.xxx.demo;
public class Demo {
public static void main(String[] args) {
DeadLock dead = new DeadLock();
Thread t0 = new Thread(dead); // 创建线程
Thread t1 = new Thread(dead);
t0.start(); // 开启线程
t1.start();
}
}
DeadLock.java(线程类,实现Runnable接口,重写run方法):
package cn.xxx.demo;
public class DeadLock implements Runnable{ // 实现Runnable接口
private int i = 0;
public void run(){ // 重写run方法
while(true){
if(i%2==0){
//先进入A同步,再进入B同步
synchronized(LockA.locka){ // 同步
System.out.println("我拿到了资源A,还需要资源B");
synchronized(LockB.lockb){ // 同步嵌套
System.out.println("我也拿到了资源B,可以