jvm
880露露088
IDEA sde,Microsoft China, SDE, Cloud Computing.
展开
-
三个线程按顺序执行-join实现
package com.example.demo.multithread; class T1 extends Thread { public Thread t; public T1(Thread t) { this.t = t; } public void run() { try { if (t != null) { t.join(); } System.out.println("a"); } catch (InterruptedException e).原创 2021-11-22 23:27:26 · 295 阅读 · 0 评论 -
乐观锁实现3个线程循环打印abc
思路:一个指示器指示当前应该打印什么,三个线程在指示器没让它打印之前则一直空旋,当指示器让它打印时,立即打印出指示器对应的字符,并修改指示器表示下一次应该打印哪一个字符。 重点:指示器要用volatile修饰 package com.example.demo.multithread; public class TT { public static int COUNT = 23; public static volatile int indicator = 0;// 0-a, 1-b, 2-.原创 2021-11-22 23:15:22 · 221 阅读 · 0 评论 -
JVM, OOM, Minor GC, Full GC
目录 JVM运行时内存区 OOM 1.内存分配过小 2.内存泄漏 3.系统资源耗尽 JVM启动参数 JVM运行时内存区 2.1 程序计数器(Progarm Counter Register) 一块较小的内存空间, 是当前线程所执行的字节码的行号指示器。线程有一个独属的程序计数器,字节码解析工作时需要程序计数器来选取下一指令,分支、循环、跳转等依赖它 正在执行java方法线程的计数器记录的是虚拟机字节码指令的地址;如果还是Native方法,则为空 程序计数器内存区域是唯一一个在原创 2021-11-15 03:18:11 · 500 阅读 · 0 评论 -
java 虚拟机--新生代与老年代GC
1. Java堆中各代分布: 图1:Java堆中各代分布 Young:主要是用来存放新生的对象。 Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域. 它和和存放Instance的Heap区域不同,GC(Garbage Collection)转载 2017-07-11 23:38:44 · 419 阅读 · 0 评论