摘要: 1、 Java GC堆内存分配。 2、晋升年龄(默认是15岁,Hotspot是动态年龄判定,遍历所有对象,按照年龄从小到大对其占用的大小进行累积,当累积到某个年龄超过了survivor的50%取这个年龄为晋升阈值。) GCRoot对象 1、虚拟机方法栈(栈帧中的本地变量表)中的引用变量。 2、本地方 阅读全文
posted @ 2022-05-06 12:47 雷雷提 阅读(111) 评论(0) 推荐(0) 编辑
摘要: AQS是一个用来构建锁和同步器的框架,使用AQS能简单高效的构造处大量应用广泛的同步器,比如我们提到的ReentrantLock,semaphore,其他的诸如ReentrantReaderWriteLock SynchronousQueue,FutureTask,都是基于AQS的。当然,我们自己利 阅读全文
posted @ 2022-05-06 11:13 雷雷提 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 一、JUC包中原子类包括了哪四类 1、基本类型 1.1AtomicInteger:整形原子类 1.2AtomicLong:长整型原子类 1.3AtomicBoolean:布尔型原子类 2、数组类型 2.1AtomicIntegetArray:整形数组原子类 2.2AtomicLongArray:长整 阅读全文
posted @ 2022-05-06 10:43 雷雷提 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 一、创建线程的三种方式 1、通过继承Thread类继承 2、通过Runnable接口,重写run方法创建 3、通过Callable接口,实现call方法的创建 4、使用线程池的方式创建 二、为什么要用线程池 线程池提供了一种限制和管理资源(包括执行一个任务)的方式,每一个线程池都维护了一些基本的统计 阅读全文
posted @ 2022-05-06 10:24 雷雷提 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 前序:JUC,java并行编程中的三个特性 1、原子性:一个或多个操作为一个整体,要么整体执行,要么不执行。synchronized保证代码片段的原子性。 2、可见性:当多个线程共享同一个变量时,若其中一个线程对线程进行了修改,那么该修改对其他线程是可见的。volatile保证变量的可见性 3、有序 阅读全文
posted @ 2022-05-06 09:30 雷雷提 阅读(88) 评论(0) 推荐(0) 编辑