自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java内存模型

内存模型:内存间的交互操作:一共有四对:

2025-05-19 20:35:41 196

原创 wait notify notifyall

问题2回答:notifyall是唤醒所有等待的线程,而notify是只唤醒一个等待的线程。生产者2抢到了锁,因为柜台已经有一个了,所以生产者2就处于一个等待的状态,消费者1又抢到了锁,消费了之后唤醒了消费者2,消费者2看了下柜台,没有产品继续等待,消费者1又抢到了锁,也看了下柜台没有产品继续等待,此时只剩下生产者1了,它拿到锁,生产了一个,却唤醒了生产者2,生产者2醒来看了一些柜台已经有一个了,继续等待。生产者1又拿到了锁,然后看了下柜台已经有一个了,所以生产者1也处于等待状态。

2025-05-19 00:11:20 144

原创 锁信息存放和各种类型的锁

1)、markword(对象的hashcode,分代年龄,gc标记,锁的标记)不同的锁的状态,markword记录的信息是不一样的。二、偏向锁(只有一个线程在使用锁,避免获取锁与释放锁带来的性能损耗)3)、数组的长度(只有数组才有)2、实例对象:属性和值。锁的可重入是锁的一个功能,不是锁的一种类型。

2025-05-17 10:50:35 201

原创 三种锁:偏向锁,轻量级锁,重量级锁

2025-05-11 22:20:31 105

原创 monitor机制

1、_owner(持有锁的线程) 2、_waitset(存放所有处于wait状态的线程,集合) 3、EntryList(存放所有等待获取锁的这些线程,也就是处于block状态的线程队列) 4、recursions(记录的是锁的重入次数) 5、_count(记录这个线程获取锁的次数)monitor依赖底层操作系统的Mutex lock实现的,它是要由操作系统去实现线程之间的切换的,需要从用户态到操作系统内核态的转化,所以说成本相对比较高,因此monitor是一种典型的重量级锁的实现方式。

2025-05-07 22:26:32 348

原创 sychronized关键字使用

假如sychronized加在了普通方法上,启动多线程调用这个普通方法,得确保所有线程都是用的同一个当前this实例对象调用这个普通方法,说白了就是锁是同一把锁,都是当前this实例对象。假如有个线程用的是另外新new的一个对象,调用这个普通方法,那就肯定不生效,锁都是另外一把锁了。加在普通方法上,锁就是当前this实例对象。加在静态方法上,锁就是当前类的class对象。锁一定是个对象,对象锁。

2025-05-07 21:09:07 183

原创 线程知识点总结

切换上下文的时候,线程a需要保存它当前的运行状态,下次抢到cpu时间片,继续运行,需要先恢复状态,然后再继续向下执行,这样一来就肯定会有性能开销,可能还跑不过单线程的运行效率。始终抢不到cpu的时间片。进程之间是相互独立的,资源不共享。线程之间切换容易,进程之间切换更加耗费资源,代价更高。伴生现象:不太容易复现,每次运行的结果都可能不太一样。活锁:线程拿到了锁,却又相互释放,不去执行。轻量级:比进程耗费的资源少,运行速度更快。死锁:互相持有对方需要的锁,相互等待释放。线程:轻量级进程,时序调度的基本单元。

2025-04-28 22:08:23 292

原创 java并发编程知识提纲

2025-04-15 22:32:48 90

原创 java泛型

实际上,泛型擦除的“结果”在运行阶段确实表现为类型信息被抹去(例如集合中存储的确实是 `Object`),但**类型擦除的过程本身发生在编译阶段**。如何直观的理解类型擦除,举个例子。需要明确擦除的过程是编译器完成的,生成的字节码已经没有了泛型信息,运行时只是按照擦除后的代码执行,所以用户看到的现象是运行时类型被擦除,但实际擦除的动作是在编译阶段完成的。还要解释用户可能存在的误区,比如认为运行时泛型信息还存在,但实际上JVM并不知道泛型的存在,所有类型检查在编译时完成,运行时只是处理原始类型。

2025-03-06 16:52:00 637

原创 学习方法研究

写作的前提就是自己得先梳理思路和体系(体系化),自己得完善细节(他人的输入可以完善自己的盲区),加深记忆(写过,讲过,讨论过的内容印象更深刻),锻炼能力(比如演讲,锻炼自己的临场反应与抗压能力,写作锻炼自己的写作能力),百利而无一害。培养自己的学习习惯,形成惯性,飞轮效应,形成习惯很难,一旦形成,后面就轻松了。5、实践,眼过千遍不如手动一遍,大多数学习,只是单纯的学习,不注重实践,其实实践才是真正的学习,单纯的学习不是学习,这是世人的误解!教员的实践论,王阳明的知行合一,懂得自然懂!

2025-02-23 16:31:50 271

空空如也

空空如也

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

TA关注的人

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