自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 什么是线程?多线程中有哪些常见问题?

线程是进程中实际运作的单位,真正的线程是指有多少个cpu(多少核),单个cpu下,使用多线程是模拟出来的,一个cpu同一时间,只能执行一段代码,因为切换的快,所以就有同时执行多个的错觉,单实际上单个cpu下,只会有一个真实线程存在。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。但也带来了可见性的问题,因为每个线程读取自己的三级缓存,每个内存相比较下就是隔离的状态,其中一个线程修改时,只修改了自己的内存,不涉及主内存与其他线程内存,导致数据不一致的问题。

2024-03-26 15:11:47 480

原创 jvm GC

Parallel Scavenge收集器也是一个新生代垃圾收集器,同样采用复制算法,也是一个多线程的垃圾收集器,它重点关注的是程序达到一个可控制的吞吐量(Throughput,CPU用于运行用户代码的时间/CPU总消耗时间,即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)),高吞吐量可以最高效率地利用CPU时间,尽快地完成程序运算任务,主要适用于在后台运算而不需要太多交互任务。Serial是最基本的垃圾收集器,使用复制算法,曾经是JDK1.3之前新生代唯一的垃圾收集器。

2024-03-25 19:01:56 612 1

原创 jvm基础

在我们垃圾回收的时候,我们往往将堆内存分成新生代和老生代(大小比例1:2),新生代中由Eden和Survivor0,Survivor1组成,三者的比例是8:1:1,新生代的回收机制采用复制算法,在Minor GC的时候,我们都留一个存活区用来存放存活的对象,真正进行的区域是Eden+其中一个存活区,当我们的对象时长超过一定年龄时(默认15,可以通过参数设置),将会把对象放入老生代,当然大的对象会直接进入老生代。方法区也称”永久代“,它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。

2024-03-25 19:00:09 854 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除